
CONTROL FLOW GRAPH SSA

void main()
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_CHAR
  main::idx#2 = ++ main::idx#1
  main::SCREEN[main::idx#2] = TYPEID_SIGNED_CHAR
  main::idx#3 = ++ main::idx#2
  main::SCREEN[main::idx#3] = TYPEID_UNSIGNED_INT
  main::idx#4 = ++ main::idx#3
  main::SCREEN[main::idx#4] = TYPEID_INT
  main::idx#5 = ++ main::idx#4
  main::SCREEN[main::idx#5] = TYPEID_UNSIGNED_LONG
  main::idx#6 = ++ main::idx#5
  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_CHAR
  main::idx#9 = ++ main::idx#8
  main::SCREEN[main::idx#9] = TYPEID_POINTER_SIGNED_CHAR
  main::idx#10 = ++ main::idx#9
  main::SCREEN[main::idx#10] = TYPEID_POINTER_UNSIGNED_INT
  main::idx#11 = ++ main::idx#10
  main::SCREEN[main::idx#11] = TYPEID_POINTER_INT
  main::idx#12 = ++ main::idx#11
  main::SCREEN[main::idx#12] = TYPEID_POINTER_UNSIGNED_LONG
  main::idx#13 = ++ main::idx#12
  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_CHAR
  main::idx#17 = ++ main::idx#16
  main::idx#18 = $28
  main::SCREEN[main::idx#18] = TYPEID_CHAR
  main::idx#19 = ++ main::idx#18
  main::SCREEN[main::idx#19] = TYPEID_SIGNED_CHAR
  main::idx#20 = ++ main::idx#19
  main::SCREEN[main::idx#20] = TYPEID_CHAR
  main::idx#21 = ++ main::idx#20
  main::SCREEN[main::idx#21] = TYPEID_INT
  main::idx#22 = ++ main::idx#21
  main::SCREEN[main::idx#22] = TYPEID_INT
  main::idx#23 = ++ main::idx#22
  main::SCREEN[main::idx#23] = TYPEID_INT
  main::idx#24 = ++ main::idx#23
  main::SCREEN[main::idx#24] = TYPEID_INT
  main::idx#25 = ++ main::idx#24
  main::SCREEN[main::idx#25] = TYPEID_INT
  main::idx#26 = ++ main::idx#25
  main::SCREEN[main::idx#26] = TYPEID_INT
  main::idx#27 = ++ main::idx#26
  main::SCREEN[main::idx#27] = TYPEID_INT
  main::idx#28 = ++ main::idx#27
  main::SCREEN[main::idx#28] = TYPEID_UNSIGNED_INT
  main::idx#29 = ++ main::idx#28
  main::SCREEN[main::idx#29] = TYPEID_UNSIGNED_INT
  main::idx#30 = ++ main::idx#29
  main::SCREEN[main::idx#30] = TYPEID_UNSIGNED_INT
  main::idx#31 = ++ main::idx#30
  main::SCREEN[main::idx#31] = TYPEID_LONG
  main::idx#32 = ++ main::idx#31
  main::SCREEN[main::idx#32] = TYPEID_LONG
  main::idx#33 = ++ main::idx#32
  main::SCREEN[main::idx#33] = TYPEID_LONG
  main::idx#34 = ++ main::idx#33
  main::SCREEN[main::idx#34] = TYPEID_UNSIGNED_LONG
  main::idx#35 = ++ main::idx#34
  main::SCREEN[main::idx#35] = TYPEID_UNSIGNED_LONG
  main::idx#36 = ++ main::idx#35
  to:main::@return
main::@return: scope:[main]  from main
  return 
  to:@return

void __start()
__start: scope:[__start]  from
  call main
  to:__start::@1
__start::@1: scope:[__start]  from __start
  to:__start::@return
__start::@return: scope:[__start]  from __start::@1
  return 
  to:@return

SYMBOL TABLE SSA
__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 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 (char *) 1024
Simplifying constant integer cast $28
Successful SSA optimization PassNCastSimplification
Finalized unsigned number type (char) $28
Successful SSA optimization PassNFinalizeNumberTypeConversions
Constant main::idx#0 = 0
Constant main::idx#18 = $28
Successful SSA optimization Pass2ConstantIdentification
Simplifying expression containing zero main::SCREEN in [1] main::SCREEN[main::idx#0] = TYPEID_VOID
Successful SSA optimization PassNSimplifyExpressionWithZero
Eliminating unused variable main::idx#17 and assignment [33] main::idx#17 = ++ main::idx#16
Eliminating unused variable main::idx#36 and assignment [69] main::idx#36 = ++ main::idx#35
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
Constant right-side identified [1] main::idx#1 = ++ main::idx#0
Constant right-side identified [34] main::idx#19 = ++ main::idx#18
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant main::idx#1 = ++main::idx#0
Constant main::idx#19 = ++main::idx#18
Successful SSA optimization Pass2ConstantIdentification
Constant right-side identified [2] main::idx#2 = ++ main::idx#1
Constant right-side identified [34] main::idx#20 = ++ main::idx#19
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant main::idx#2 = ++main::idx#1
Constant main::idx#20 = ++main::idx#19
Successful SSA optimization Pass2ConstantIdentification
Constant right-side identified [3] main::idx#3 = ++ main::idx#2
Constant right-side identified [34] main::idx#21 = ++ main::idx#20
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant main::idx#3 = ++main::idx#2
Constant main::idx#21 = ++main::idx#20
Successful SSA optimization Pass2ConstantIdentification
Constant right-side identified [4] main::idx#4 = ++ main::idx#3
Constant right-side identified [34] main::idx#22 = ++ main::idx#21
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant main::idx#4 = ++main::idx#3
Constant main::idx#22 = ++main::idx#21
Successful SSA optimization Pass2ConstantIdentification
Constant right-side identified [5] main::idx#5 = ++ main::idx#4
Constant right-side identified [34] main::idx#23 = ++ main::idx#22
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant main::idx#5 = ++main::idx#4
Constant main::idx#23 = ++main::idx#22
Successful SSA optimization Pass2ConstantIdentification
Constant right-side identified [6] main::idx#6 = ++ main::idx#5
Constant right-side identified [34] main::idx#24 = ++ main::idx#23
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant main::idx#6 = ++main::idx#5
Constant main::idx#24 = ++main::idx#23
Successful SSA optimization Pass2ConstantIdentification
Constant right-side identified [7] main::idx#7 = ++ main::idx#6
Constant right-side identified [34] main::idx#25 = ++ main::idx#24
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant main::idx#7 = ++main::idx#6
Constant main::idx#25 = ++main::idx#24
Successful SSA optimization Pass2ConstantIdentification
Constant right-side identified [8] main::idx#8 = ++ main::idx#7
Constant right-side identified [34] main::idx#26 = ++ main::idx#25
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant main::idx#8 = ++main::idx#7
Constant main::idx#26 = ++main::idx#25
Successful SSA optimization Pass2ConstantIdentification
Constant right-side identified [9] main::idx#9 = ++ main::idx#8
Constant right-side identified [34] main::idx#27 = ++ main::idx#26
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant main::idx#9 = ++main::idx#8
Constant main::idx#27 = ++main::idx#26
Successful SSA optimization Pass2ConstantIdentification
Constant right-side identified [10] main::idx#10 = ++ main::idx#9
Constant right-side identified [34] main::idx#28 = ++ main::idx#27
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant main::idx#10 = ++main::idx#9
Constant main::idx#28 = ++main::idx#27
Successful SSA optimization Pass2ConstantIdentification
Constant right-side identified [11] main::idx#11 = ++ main::idx#10
Constant right-side identified [34] main::idx#29 = ++ main::idx#28
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant main::idx#11 = ++main::idx#10
Constant main::idx#29 = ++main::idx#28
Successful SSA optimization Pass2ConstantIdentification
Constant right-side identified [12] main::idx#12 = ++ main::idx#11
Constant right-side identified [34] main::idx#30 = ++ main::idx#29
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant main::idx#12 = ++main::idx#11
Constant main::idx#30 = ++main::idx#29
Successful SSA optimization Pass2ConstantIdentification
Constant right-side identified [13] main::idx#13 = ++ main::idx#12
Constant right-side identified [34] main::idx#31 = ++ main::idx#30
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant main::idx#13 = ++main::idx#12
Constant main::idx#31 = ++main::idx#30
Successful SSA optimization Pass2ConstantIdentification
Constant right-side identified [14] main::idx#14 = ++ main::idx#13
Constant right-side identified [34] main::idx#32 = ++ main::idx#31
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant main::idx#14 = ++main::idx#13
Constant main::idx#32 = ++main::idx#31
Successful SSA optimization Pass2ConstantIdentification
Constant right-side identified [15] main::idx#15 = ++ main::idx#14
Constant right-side identified [34] main::idx#33 = ++ main::idx#32
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant main::idx#15 = ++main::idx#14
Constant main::idx#33 = ++main::idx#32
Successful SSA optimization Pass2ConstantIdentification
Constant right-side identified [16] main::idx#16 = ++ main::idx#15
Constant right-side identified [34] main::idx#34 = ++ main::idx#33
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant main::idx#16 = ++main::idx#15
Constant main::idx#34 = ++main::idx#33
Successful SSA optimization Pass2ConstantIdentification
Constant right-side identified [34] main::idx#35 = ++ main::idx#34
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant main::idx#35 = ++main::idx#34
Successful SSA optimization Pass2ConstantIdentification
Inlining constant with different constant siblings main::idx#0
Inlining constant with different constant siblings main::idx#18
Inlining constant with different constant siblings main::idx#1
Inlining constant with different constant siblings main::idx#19
Inlining constant with different constant siblings main::idx#2
Inlining constant with different constant siblings main::idx#20
Inlining constant with different constant siblings main::idx#3
Inlining constant with different constant siblings main::idx#21
Inlining constant with different constant siblings main::idx#4
Inlining constant with different constant siblings main::idx#22
Inlining constant with different constant siblings main::idx#5
Inlining constant with different constant siblings main::idx#23
Inlining constant with different constant siblings main::idx#6
Inlining constant with different constant siblings main::idx#24
Inlining constant with different constant siblings main::idx#7
Inlining constant with different constant siblings main::idx#25
Inlining constant with different constant siblings main::idx#8
Inlining constant with different constant siblings main::idx#26
Inlining constant with different constant siblings main::idx#9
Inlining constant with different constant siblings main::idx#27
Inlining constant with different constant siblings main::idx#10
Inlining constant with different constant siblings main::idx#28
Inlining constant with different constant siblings main::idx#11
Inlining constant with different constant siblings main::idx#29
Inlining constant with different constant siblings main::idx#12
Inlining constant with different constant siblings main::idx#30
Inlining constant with different constant siblings main::idx#13
Inlining constant with different constant siblings main::idx#31
Inlining constant with different constant siblings main::idx#14
Inlining constant with different constant siblings main::idx#32
Inlining constant with different constant siblings main::idx#15
Inlining constant with different constant siblings main::idx#33
Inlining constant with different constant siblings main::idx#16
Inlining constant with different constant siblings main::idx#34
Inlining constant with different constant siblings main::idx#35
Constant inlined main::idx#16 = ++++++++++++++++++++++++++++++++0
Constant inlined main::idx#18 = $28
Constant inlined main::idx#19 = ++$28
Constant inlined main::idx#12 = ++++++++++++++++++++++++0
Constant inlined main::idx#34 = ++++++++++++++++++++++++++++++++$28
Constant inlined main::idx#13 = ++++++++++++++++++++++++++0
Constant inlined main::idx#35 = ++++++++++++++++++++++++++++++++++$28
Constant inlined main::idx#14 = ++++++++++++++++++++++++++++0
Constant inlined main::idx#15 = ++++++++++++++++++++++++++++++0
Constant inlined main::idx#20 = ++++$28
Constant inlined main::idx#21 = ++++++$28
Constant inlined main::idx#22 = ++++++++$28
Constant inlined main::idx#27 = ++++++++++++++++++$28
Constant inlined main::idx#28 = ++++++++++++++++++++$28
Constant inlined main::idx#29 = ++++++++++++++++++++++$28
Constant inlined main::idx#23 = ++++++++++$28
Constant inlined main::idx#24 = ++++++++++++$28
Constant inlined main::idx#25 = ++++++++++++++$28
Constant inlined main::idx#26 = ++++++++++++++++$28
Constant inlined main::idx#0 = 0
Constant inlined main::idx#1 = ++0
Constant inlined main::idx#2 = ++++0
Constant inlined main::idx#3 = ++++++0
Constant inlined main::idx#4 = ++++++++0
Constant inlined main::idx#5 = ++++++++++0
Constant inlined main::idx#6 = ++++++++++++0
Constant inlined main::idx#7 = ++++++++++++++0
Constant inlined main::idx#30 = ++++++++++++++++++++++++$28
Constant inlined main::idx#8 = ++++++++++++++++0
Constant inlined main::idx#31 = ++++++++++++++++++++++++++$28
Constant inlined main::idx#9 = ++++++++++++++++++0
Constant inlined main::idx#10 = ++++++++++++++++++++0
Constant inlined main::idx#32 = ++++++++++++++++++++++++++++$28
Constant inlined main::idx#11 = ++++++++++++++++++++++0
Constant inlined main::idx#33 = ++++++++++++++++++++++++++++++$28
Successful SSA optimization Pass2ConstantInlining
Consolidated array index constant in *(main::SCREEN+++0)
Consolidated array index constant in *(main::SCREEN+++++0)
Consolidated array index constant in *(main::SCREEN+++++++0)
Consolidated array index constant in *(main::SCREEN+++++++++0)
Consolidated array index constant in *(main::SCREEN+++++++++++0)
Consolidated array index constant in *(main::SCREEN+++++++++++++0)
Consolidated array index constant in *(main::SCREEN+++++++++++++++0)
Consolidated array index constant in *(main::SCREEN+++++++++++++++++0)
Consolidated array index constant in *(main::SCREEN+++++++++++++++++++0)
Consolidated array index constant in *(main::SCREEN+++++++++++++++++++++0)
Consolidated array index constant in *(main::SCREEN+++++++++++++++++++++++0)
Consolidated array index constant in *(main::SCREEN+++++++++++++++++++++++++0)
Consolidated array index constant in *(main::SCREEN+++++++++++++++++++++++++++0)
Consolidated array index constant in *(main::SCREEN+++++++++++++++++++++++++++++0)
Consolidated array index constant in *(main::SCREEN+++++++++++++++++++++++++++++++0)
Consolidated array index constant in *(main::SCREEN+++++++++++++++++++++++++++++++++0)
Consolidated array index constant in *(main::SCREEN+$28)
Consolidated array index constant in *(main::SCREEN+++$28)
Consolidated array index constant in *(main::SCREEN+++++$28)
Consolidated array index constant in *(main::SCREEN+++++++$28)
Consolidated array index constant in *(main::SCREEN+++++++++$28)
Consolidated array index constant in *(main::SCREEN+++++++++++$28)
Consolidated array index constant in *(main::SCREEN+++++++++++++$28)
Consolidated array index constant in *(main::SCREEN+++++++++++++++$28)
Consolidated array index constant in *(main::SCREEN+++++++++++++++++$28)
Consolidated array index constant in *(main::SCREEN+++++++++++++++++++$28)
Consolidated array index constant in *(main::SCREEN+++++++++++++++++++++$28)
Consolidated array index constant in *(main::SCREEN+++++++++++++++++++++++$28)
Consolidated array index constant in *(main::SCREEN+++++++++++++++++++++++++$28)
Consolidated array index constant in *(main::SCREEN+++++++++++++++++++++++++++$28)
Consolidated array index constant in *(main::SCREEN+++++++++++++++++++++++++++++$28)
Consolidated array index constant in *(main::SCREEN+++++++++++++++++++++++++++++++$28)
Consolidated array index constant in *(main::SCREEN+++++++++++++++++++++++++++++++++$28)
Consolidated array index constant in *(main::SCREEN+++++++++++++++++++++++++++++++++++$28)
Successful SSA optimization Pass2ConstantAdditionElimination
Simplifying constant integer increment ++0
Simplifying constant integer increment ++0
Simplifying constant integer increment ++1
Simplifying constant integer increment ++2
Simplifying constant integer increment ++3
Simplifying constant integer increment ++4
Simplifying constant integer increment ++5
Simplifying constant integer increment ++6
Simplifying constant integer increment ++7
Simplifying constant integer increment ++8
Simplifying constant integer increment ++9
Simplifying constant integer increment ++$a
Simplifying constant integer increment ++$b
Simplifying constant integer increment ++$c
Simplifying constant integer increment ++$d
Simplifying constant integer increment ++$e
Simplifying constant integer increment ++$28
Simplifying constant integer increment ++$28
Simplifying constant integer increment ++$29
Simplifying constant integer increment ++$2a
Simplifying constant integer increment ++$2b
Simplifying constant integer increment ++$2c
Simplifying constant integer increment ++$2d
Simplifying constant integer increment ++$2e
Simplifying constant integer increment ++$2f
Simplifying constant integer increment ++$30
Simplifying constant integer increment ++$31
Simplifying constant integer increment ++$32
Simplifying constant integer increment ++$33
Simplifying constant integer increment ++$34
Simplifying constant integer increment ++$35
Simplifying constant integer increment ++$36
Simplifying constant integer increment ++$37
Successful SSA optimization Pass2ConstantSimplification
Simplifying constant integer increment ++1
Simplifying constant integer increment ++2
Simplifying constant integer increment ++3
Simplifying constant integer increment ++4
Simplifying constant integer increment ++5
Simplifying constant integer increment ++6
Simplifying constant integer increment ++7
Simplifying constant integer increment ++8
Simplifying constant integer increment ++9
Simplifying constant integer increment ++$a
Simplifying constant integer increment ++$b
Simplifying constant integer increment ++$c
Simplifying constant integer increment ++$d
Simplifying constant integer increment ++$e
Simplifying constant integer increment ++$f
Simplifying constant integer increment ++$29
Simplifying constant integer increment ++$2a
Simplifying constant integer increment ++$2b
Simplifying constant integer increment ++$2c
Simplifying constant integer increment ++$2d
Simplifying constant integer increment ++$2e
Simplifying constant integer increment ++$2f
Simplifying constant integer increment ++$30
Simplifying constant integer increment ++$31
Simplifying constant integer increment ++$32
Simplifying constant integer increment ++$33
Simplifying constant integer increment ++$34
Simplifying constant integer increment ++$35
Simplifying constant integer increment ++$36
Simplifying constant integer increment ++$37
Simplifying constant integer increment ++$38
Successful SSA optimization Pass2ConstantSimplification
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

Created 0 initial phi equivalence classes
Coalesced down to 0 phi equivalence classes

FINAL CONTROL FLOW GRAPH

void main()
main: scope:[main]  from
  [0] *main::SCREEN = TYPEID_VOID
  [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_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_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 
  to:@return


VARIABLE REGISTER WEIGHTS
void main()
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_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_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_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] 
Uplift Scope [] 

Uplifting [main] best 219 combination 
Uplifting [] best 219 combination 

ASSEMBLER BEFORE OPTIMIZATION
  // File Comments
// Test typeid() of the different types
  // Upstart
  // Commodore 64 PRG executable file
.file [name="typeid-simple.prg", type="prg", segments="Program"]
.segmentdef Program [segments="Basic, Code, Data"]
.segmentdef Basic [start=$0801]
.segmentdef Code [start=$80d]
.segmentdef Data [startAfter="Code"]
.segment Basic
:BasicUpstart(main)
  // Global Constants & labels
  .const TYPEID_VOID = 0
  .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_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_CHAR = $21
.segment Code
  // main
main: {
    .label SCREEN = $400
    // [0] *main::SCREEN = TYPEID_VOID -- _deref_pbuc1=vbuc2 
    // Simple types
    lda #TYPEID_VOID
    sta SCREEN
    // [1] *(main::SCREEN+1) = TYPEID_CHAR -- _deref_pbuc1=vbuc2 
    lda #TYPEID_CHAR
    sta SCREEN+1
    // [2] *(main::SCREEN+2) = TYPEID_SIGNED_CHAR -- _deref_pbuc1=vbuc2 
    lda #TYPEID_SIGNED_CHAR
    sta SCREEN+2
    // [3] *(main::SCREEN+3) = TYPEID_UNSIGNED_INT -- _deref_pbuc1=vbuc2 
    lda #TYPEID_UNSIGNED_INT
    sta SCREEN+3
    // [4] *(main::SCREEN+4) = TYPEID_INT -- _deref_pbuc1=vbuc2 
    lda #TYPEID_INT
    sta SCREEN+4
    // [5] *(main::SCREEN+5) = TYPEID_UNSIGNED_LONG -- _deref_pbuc1=vbuc2 
    lda #TYPEID_UNSIGNED_LONG
    sta SCREEN+5
    // [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_CHAR -- _deref_pbuc1=vbuc2 
    // Pointer types
    lda #TYPEID_POINTER_CHAR
    sta SCREEN+8
    // [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_UNSIGNED_INT -- _deref_pbuc1=vbuc2 
    lda #TYPEID_POINTER_UNSIGNED_INT
    sta SCREEN+$a
    // [11] *(main::SCREEN+$b) = TYPEID_POINTER_INT -- _deref_pbuc1=vbuc2 
    lda #TYPEID_POINTER_INT
    sta SCREEN+$b
    // [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_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
    sta SCREEN+$e
    // [15] *(main::SCREEN+$f) = TYPEID_POINTER_PROCEDURE -- _deref_pbuc1=vbuc2 
    // Pointer to procedure
    lda #TYPEID_POINTER_PROCEDURE
    sta SCREEN+$f
    // [16] *(main::SCREEN+$10) = TYPEID_POINTER_POINTER_CHAR -- _deref_pbuc1=vbuc2 
    // Pointer to pointer
    lda #TYPEID_POINTER_POINTER_CHAR
    sta SCREEN+$10
    // [17] *(main::SCREEN+$28) = TYPEID_CHAR -- _deref_pbuc1=vbuc2 
    // Test C types
    lda #TYPEID_CHAR
    sta SCREEN+$28
    // [18] *(main::SCREEN+$29) = TYPEID_SIGNED_CHAR -- _deref_pbuc1=vbuc2 
    lda #TYPEID_SIGNED_CHAR
    sta SCREEN+$29
    // [19] *(main::SCREEN+$2a) = TYPEID_CHAR -- _deref_pbuc1=vbuc2 
    lda #TYPEID_CHAR
    sta SCREEN+$2a
    // [20] *(main::SCREEN+$2b) = TYPEID_INT -- _deref_pbuc1=vbuc2 
    lda #TYPEID_INT
    sta SCREEN+$2b
    // [21] *(main::SCREEN+$2c) = TYPEID_INT -- _deref_pbuc1=vbuc2 
    lda #TYPEID_INT
    sta SCREEN+$2c
    // [22] *(main::SCREEN+$2d) = TYPEID_INT -- _deref_pbuc1=vbuc2 
    lda #TYPEID_INT
    sta SCREEN+$2d
    // [23] *(main::SCREEN+$2e) = TYPEID_INT -- _deref_pbuc1=vbuc2 
    lda #TYPEID_INT
    sta SCREEN+$2e
    // [24] *(main::SCREEN+$2f) = TYPEID_INT -- _deref_pbuc1=vbuc2 
    lda #TYPEID_INT
    sta SCREEN+$2f
    // [25] *(main::SCREEN+$30) = TYPEID_INT -- _deref_pbuc1=vbuc2 
    lda #TYPEID_INT
    sta SCREEN+$30
    // [26] *(main::SCREEN+$31) = TYPEID_INT -- _deref_pbuc1=vbuc2 
    lda #TYPEID_INT
    sta SCREEN+$31
    // [27] *(main::SCREEN+$32) = TYPEID_UNSIGNED_INT -- _deref_pbuc1=vbuc2 
    lda #TYPEID_UNSIGNED_INT
    sta SCREEN+$32
    // [28] *(main::SCREEN+$33) = TYPEID_UNSIGNED_INT -- _deref_pbuc1=vbuc2 
    lda #TYPEID_UNSIGNED_INT
    sta SCREEN+$33
    // [29] *(main::SCREEN+$34) = TYPEID_UNSIGNED_INT -- _deref_pbuc1=vbuc2 
    lda #TYPEID_UNSIGNED_INT
    sta SCREEN+$34
    // [30] *(main::SCREEN+$35) = TYPEID_LONG -- _deref_pbuc1=vbuc2 
    lda #TYPEID_LONG
    sta SCREEN+$35
    // [31] *(main::SCREEN+$36) = TYPEID_LONG -- _deref_pbuc1=vbuc2 
    lda #TYPEID_LONG
    sta SCREEN+$36
    // [32] *(main::SCREEN+$37) = TYPEID_LONG -- _deref_pbuc1=vbuc2 
    lda #TYPEID_LONG
    sta SCREEN+$37
    // [33] *(main::SCREEN+$38) = TYPEID_UNSIGNED_LONG -- _deref_pbuc1=vbuc2 
    lda #TYPEID_UNSIGNED_LONG
    sta SCREEN+$38
    // [34] *(main::SCREEN+$39) = TYPEID_UNSIGNED_LONG -- _deref_pbuc1=vbuc2 
    lda #TYPEID_UNSIGNED_LONG
    sta SCREEN+$39
    jmp __breturn
    // main::@return
  __breturn:
    // [35] return 
    rts
}
  // File Data

ASSEMBLER OPTIMIZATIONS
Removing instruction jmp __breturn
Succesful ASM optimization Pass5NextJumpElimination
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 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 char * const main::SCREEN = (char *) 1024
char main::idx



FINAL ASSEMBLER
Score: 194

  // File Comments
// Test typeid() of the different types
  // Upstart
  // Commodore 64 PRG executable file
.file [name="typeid-simple.prg", type="prg", segments="Program"]
.segmentdef Program [segments="Basic, Code, Data"]
.segmentdef Basic [start=$0801]
.segmentdef Code [start=$80d]
.segmentdef Data [startAfter="Code"]
.segment Basic
:BasicUpstart(main)
  // Global Constants & labels
  .const TYPEID_VOID = 0
  .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_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_CHAR = $21
.segment Code
  // main
main: {
    .label SCREEN = $400
    // SCREEN[idx++] = typeid(void)
    // [0] *main::SCREEN = TYPEID_VOID -- _deref_pbuc1=vbuc2 
    // Simple types
    lda #TYPEID_VOID
    sta SCREEN
    // SCREEN[idx++] = 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_CHAR -- _deref_pbuc1=vbuc2 
    lda #TYPEID_SIGNED_CHAR
    sta SCREEN+2
    // SCREEN[idx++] = 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_INT -- _deref_pbuc1=vbuc2 
    lda #TYPEID_INT
    sta SCREEN+4
    // SCREEN[idx++] = 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_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_CHAR -- _deref_pbuc1=vbuc2 
    // Pointer types
    lda #TYPEID_POINTER_CHAR
    sta SCREEN+8
    // SCREEN[idx++] = typeid(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_UNSIGNED_INT -- _deref_pbuc1=vbuc2 
    lda #TYPEID_POINTER_UNSIGNED_INT
    sta SCREEN+$a
    // SCREEN[idx++] = typeid(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_UNSIGNED_LONG -- _deref_pbuc1=vbuc2 
    lda #TYPEID_POINTER_UNSIGNED_LONG
    sta SCREEN+$c
    // SCREEN[idx++] = typeid(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 
    lda #TYPEID_POINTER_BOOL
    sta SCREEN+$e
    // SCREEN[idx++] = typeid(PROC_PTR)
    // [15] *(main::SCREEN+$f) = TYPEID_POINTER_PROCEDURE -- _deref_pbuc1=vbuc2 
    // Pointer to procedure
    lda #TYPEID_POINTER_PROCEDURE
    sta SCREEN+$f
    // SCREEN[idx++] = typeid(byte**)
    // [16] *(main::SCREEN+$10) = TYPEID_POINTER_POINTER_CHAR -- _deref_pbuc1=vbuc2 
    // Pointer to pointer
    lda #TYPEID_POINTER_POINTER_CHAR
    sta SCREEN+$10
    // SCREEN[idx++] = typeid(char)
    // [17] *(main::SCREEN+$28) = TYPEID_CHAR -- _deref_pbuc1=vbuc2 
    // Test C types
    lda #TYPEID_CHAR
    sta SCREEN+$28
    // SCREEN[idx++] = typeid(signed char)
    // [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_CHAR -- _deref_pbuc1=vbuc2 
    lda #TYPEID_CHAR
    sta SCREEN+$2a
    // SCREEN[idx++] = typeid(short)
    // [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_INT -- _deref_pbuc1=vbuc2 
    sta SCREEN+$2c
    // SCREEN[idx++] = typeid(signed)
    // [22] *(main::SCREEN+$2d) = TYPEID_INT -- _deref_pbuc1=vbuc2 
    sta SCREEN+$2d
    // SCREEN[idx++] = typeid(int)
    // [23] *(main::SCREEN+$2e) = TYPEID_INT -- _deref_pbuc1=vbuc2 
    sta SCREEN+$2e
    // SCREEN[idx++] = typeid(signed short)
    // [24] *(main::SCREEN+$2f) = TYPEID_INT -- _deref_pbuc1=vbuc2 
    sta SCREEN+$2f
    // SCREEN[idx++] = typeid(signed short int)
    // [25] *(main::SCREEN+$30) = TYPEID_INT -- _deref_pbuc1=vbuc2 
    sta SCREEN+$30
    // SCREEN[idx++] = typeid(signed int)
    // [26] *(main::SCREEN+$31) = TYPEID_INT -- _deref_pbuc1=vbuc2 
    sta SCREEN+$31
    // SCREEN[idx++] = typeid(unsigned short)
    // [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_UNSIGNED_INT -- _deref_pbuc1=vbuc2 
    sta SCREEN+$33
    // SCREEN[idx++] = typeid(unsigned int)
    // [29] *(main::SCREEN+$34) = TYPEID_UNSIGNED_INT -- _deref_pbuc1=vbuc2 
    sta SCREEN+$34
    // SCREEN[idx++] = typeid(long)
    // [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_LONG -- _deref_pbuc1=vbuc2 
    sta SCREEN+$36
    // SCREEN[idx++] = typeid(signed long int)
    // [32] *(main::SCREEN+$37) = TYPEID_LONG -- _deref_pbuc1=vbuc2 
    sta SCREEN+$37
    // SCREEN[idx++] = typeid(unsigned long)
    // [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_UNSIGNED_LONG -- _deref_pbuc1=vbuc2 
    sta SCREEN+$39
    // main::@return
    // }
    // [35] return 
    rts
}
  // File Data

