mirror of
https://gitlab.com/camelot/kickc.git
synced 2025-01-12 11:31:11 +00:00
Using inverse space in scroller
This commit is contained in:
parent
e64b12e7be
commit
a1baf2e046
@ -102,18 +102,17 @@ public class AsmFragmentSignature {
|
||||
signature.append(getOperatorFragmentName(operator));
|
||||
}
|
||||
if (
|
||||
rValue2 instanceof ConstantInteger &&
|
||||
((ConstantInteger) rValue2).getNumber() == 2 &&
|
||||
operator != null &&
|
||||
(operator.getOperator().equals(">>") || operator.getOperator().equals("<<"))) {
|
||||
signature.append("2");
|
||||
} else if (
|
||||
rValue2 instanceof ConstantInteger &&
|
||||
((ConstantInteger) rValue2).getNumber() == 1 &&
|
||||
operator != null &&
|
||||
(operator.getOperator().equals("-") || operator.getOperator().equals("+") || operator.getOperator().equals(
|
||||
">>") || operator.getOperator().equals("<<"))) {
|
||||
(operator.getOperator().equals("-") || operator.getOperator().equals("+"))) {
|
||||
signature.append("1");
|
||||
} else if (
|
||||
rValue2 instanceof ConstantInteger &&
|
||||
((ConstantInteger) rValue2).getNumber() <= 7 &&
|
||||
operator != null &&
|
||||
(operator.getOperator().equals(">>") || operator.getOperator().equals("<<"))) {
|
||||
signature.append(((ConstantInteger) rValue2).getNumber());
|
||||
} else if (
|
||||
rValue2 instanceof ConstantInteger &&
|
||||
((ConstantInteger) rValue2).getNumber() == 0 &&
|
||||
|
@ -0,0 +1,4 @@
|
||||
asl {zpwo1}
|
||||
rol {zpwo1}+1
|
||||
asl {zpwo1}
|
||||
rol {zpwo1}+1
|
@ -0,0 +1,6 @@
|
||||
asl {zpwo1}
|
||||
rol {zpwo1}+1
|
||||
asl {zpwo1}
|
||||
rol {zpwo1}+1
|
||||
asl {zpwo1}
|
||||
rol {zpwo1}+1
|
@ -0,0 +1,12 @@
|
||||
lda {zpwo1}
|
||||
asl
|
||||
sta {zpwo2}
|
||||
lda {zpwo1}+1
|
||||
rol
|
||||
sta {zpwo2}+1
|
||||
lda {zpwo1}
|
||||
asl
|
||||
sta {zpwo2}
|
||||
lda {zpwo1}+1
|
||||
rol
|
||||
sta {zpwo2}+1
|
@ -0,0 +1,18 @@
|
||||
lda {zpwo1}
|
||||
asl
|
||||
sta {zpwo2}
|
||||
lda {zpwo1}+1
|
||||
rol
|
||||
sta {zpwo2}+1
|
||||
lda {zpwo1}
|
||||
asl
|
||||
sta {zpwo2}
|
||||
lda {zpwo1}+1
|
||||
rol
|
||||
sta {zpwo2}+1
|
||||
lda {zpwo1}
|
||||
asl
|
||||
sta {zpwo2}
|
||||
lda {zpwo1}+1
|
||||
rol
|
||||
sta {zpwo2}+1
|
@ -50,10 +50,10 @@ scroll_soft: {
|
||||
rts
|
||||
}
|
||||
scroll_bit: {
|
||||
.label _8 = 3
|
||||
.label _4 = 9
|
||||
.label _5 = 3
|
||||
.label c = 9
|
||||
.label sc = 5
|
||||
jsr scroll_hard
|
||||
lda current_bit
|
||||
lsr
|
||||
sta current_bit
|
||||
@ -62,22 +62,23 @@ scroll_bit: {
|
||||
sta c
|
||||
lda #0
|
||||
sta c+1
|
||||
asl c
|
||||
rol c+1
|
||||
asl c
|
||||
rol c+1
|
||||
asl c
|
||||
rol c+1
|
||||
asl _4
|
||||
rol _4+1
|
||||
asl _4
|
||||
rol _4+1
|
||||
asl _4
|
||||
rol _4+1
|
||||
lda #<CHARGEN
|
||||
clc
|
||||
adc c
|
||||
sta _8
|
||||
adc _4
|
||||
sta _5
|
||||
lda #>CHARGEN
|
||||
adc c+1
|
||||
sta _8+1
|
||||
adc _4+1
|
||||
sta _5+1
|
||||
lda #$80
|
||||
sta current_bit
|
||||
b1:
|
||||
jsr scroll_hard
|
||||
sei
|
||||
lda #$32
|
||||
sta PROCPORT
|
||||
@ -93,7 +94,7 @@ scroll_bit: {
|
||||
and current_bit
|
||||
cmp #0
|
||||
beq b3_from_b2
|
||||
lda #'*'
|
||||
lda #$80+' '
|
||||
jmp b3
|
||||
b3_from_b2:
|
||||
lda #' '
|
||||
@ -115,23 +116,6 @@ scroll_bit: {
|
||||
cli
|
||||
rts
|
||||
}
|
||||
next_char: {
|
||||
ldy #0
|
||||
lda (nxt),y
|
||||
cmp #'@'
|
||||
bne b1
|
||||
lda TEXT
|
||||
lda #<TEXT
|
||||
sta nxt
|
||||
lda #>TEXT
|
||||
sta nxt+1
|
||||
b1:
|
||||
inc nxt
|
||||
bne !+
|
||||
inc nxt+1
|
||||
!:
|
||||
rts
|
||||
}
|
||||
scroll_hard: {
|
||||
.const line0 = SCREEN+$28*0
|
||||
.const line1 = SCREEN+$28*1
|
||||
@ -164,6 +148,23 @@ scroll_hard: {
|
||||
bne b1
|
||||
rts
|
||||
}
|
||||
next_char: {
|
||||
ldy #0
|
||||
lda (nxt),y
|
||||
cmp #'@'
|
||||
bne b1
|
||||
lda TEXT
|
||||
lda #<TEXT
|
||||
sta nxt
|
||||
lda #>TEXT
|
||||
sta nxt+1
|
||||
b1:
|
||||
inc nxt
|
||||
bne !+
|
||||
inc nxt+1
|
||||
!:
|
||||
rts
|
||||
}
|
||||
fillscreen: {
|
||||
.const fill = $20
|
||||
.label cursor = 3
|
||||
|
@ -34,11 +34,11 @@ scroll_soft: scope:[scroll_soft] from main::@5
|
||||
[12] if((byte) scroll#3!=(byte) 255) goto scroll_soft::@1 [ current_bit#29 nxt#31 current_chargen#27 scroll#3 ] ( main:0::scroll_soft:7 [ current_bit#29 nxt#31 current_chargen#27 scroll#3 ] )
|
||||
to:scroll_soft::@2
|
||||
scroll_soft::@2: scope:[scroll_soft] from scroll_soft
|
||||
[13] call scroll_bit param-assignment [ current_bit#21 nxt#37 current_chargen#18 ] ( main:0::scroll_soft:7 [ current_bit#21 nxt#37 current_chargen#18 ] )
|
||||
[13] call scroll_bit param-assignment [ current_bit#21 nxt#36 current_chargen#19 ] ( main:0::scroll_soft:7 [ current_bit#21 nxt#36 current_chargen#19 ] )
|
||||
to:scroll_soft::@1
|
||||
scroll_soft::@1: scope:[scroll_soft] from scroll_soft scroll_soft::@2
|
||||
[14] (byte*) current_chargen#0 ← phi( scroll_soft/(byte*) current_chargen#27 scroll_soft::@2/(byte*) current_chargen#18 ) [ scroll#0 current_bit#0 nxt#0 current_chargen#0 ] ( main:0::scroll_soft:7 [ scroll#0 current_bit#0 nxt#0 current_chargen#0 ] )
|
||||
[14] (byte*) nxt#0 ← phi( scroll_soft/(byte*) nxt#31 scroll_soft::@2/(byte*) nxt#37 ) [ scroll#0 current_bit#0 nxt#0 current_chargen#0 ] ( main:0::scroll_soft:7 [ scroll#0 current_bit#0 nxt#0 current_chargen#0 ] )
|
||||
[14] (byte*) current_chargen#0 ← phi( scroll_soft/(byte*) current_chargen#27 scroll_soft::@2/(byte*) current_chargen#19 ) [ scroll#0 current_bit#0 nxt#0 current_chargen#0 ] ( main:0::scroll_soft:7 [ scroll#0 current_bit#0 nxt#0 current_chargen#0 ] )
|
||||
[14] (byte*) nxt#0 ← phi( scroll_soft/(byte*) nxt#31 scroll_soft::@2/(byte*) nxt#36 ) [ scroll#0 current_bit#0 nxt#0 current_chargen#0 ] ( main:0::scroll_soft:7 [ scroll#0 current_bit#0 nxt#0 current_chargen#0 ] )
|
||||
[14] (byte) current_bit#0 ← phi( scroll_soft/(byte) current_bit#29 scroll_soft::@2/(byte) current_bit#21 ) [ scroll#0 current_bit#0 nxt#0 current_chargen#0 ] ( main:0::scroll_soft:7 [ scroll#0 current_bit#0 nxt#0 current_chargen#0 ] )
|
||||
[14] (byte) scroll#0 ← phi( scroll_soft/(byte) scroll#3 scroll_soft::@2/(byte) 7 ) [ scroll#0 current_bit#0 nxt#0 current_chargen#0 ] ( main:0::scroll_soft:7 [ scroll#0 current_bit#0 nxt#0 current_chargen#0 ] )
|
||||
[15] *((const byte*) SCROLL#0) ← (byte) scroll#0 [ scroll#0 current_bit#0 nxt#0 current_chargen#0 ] ( main:0::scroll_soft:7 [ scroll#0 current_bit#0 nxt#0 current_chargen#0 ] )
|
||||
@ -47,106 +47,103 @@ scroll_soft::@return: scope:[scroll_soft] from scroll_soft::@1
|
||||
[16] return [ scroll#0 current_bit#0 nxt#0 current_chargen#0 ] ( main:0::scroll_soft:7 [ scroll#0 current_bit#0 nxt#0 current_chargen#0 ] )
|
||||
to:@return
|
||||
scroll_bit: scope:[scroll_bit] from scroll_soft::@2
|
||||
[17] phi() [ current_bit#29 nxt#31 current_chargen#27 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#29 nxt#31 current_chargen#27 ] )
|
||||
[18] call scroll_hard param-assignment [ current_bit#29 nxt#31 current_chargen#27 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#29 nxt#31 current_chargen#27 ] )
|
||||
to:scroll_bit::@7
|
||||
scroll_bit::@7: scope:[scroll_bit] from scroll_bit
|
||||
[19] (byte~) scroll_bit::$1 ← (byte) current_bit#29 >> (byte) 1 [ nxt#31 current_chargen#27 scroll_bit::$1 ] ( main:0::scroll_soft:7::scroll_bit:13 [ nxt#31 current_chargen#27 scroll_bit::$1 ] )
|
||||
[20] (byte) current_bit#5 ← (byte~) scroll_bit::$1 [ nxt#31 current_chargen#27 current_bit#5 ] ( main:0::scroll_soft:7::scroll_bit:13 [ nxt#31 current_chargen#27 current_bit#5 ] )
|
||||
[21] if((byte) current_bit#5!=(byte) 0) goto scroll_bit::@1 [ nxt#31 current_chargen#27 current_bit#5 ] ( main:0::scroll_soft:7::scroll_bit:13 [ nxt#31 current_chargen#27 current_bit#5 ] )
|
||||
[17] (byte~) scroll_bit::$0 ← (byte) current_bit#29 >> (byte) 1 [ nxt#31 current_chargen#27 scroll_bit::$0 ] ( main:0::scroll_soft:7::scroll_bit:13 [ nxt#31 current_chargen#27 scroll_bit::$0 ] )
|
||||
[18] (byte) current_bit#5 ← (byte~) scroll_bit::$0 [ nxt#31 current_chargen#27 current_bit#5 ] ( main:0::scroll_soft:7::scroll_bit:13 [ nxt#31 current_chargen#27 current_bit#5 ] )
|
||||
[19] if((byte) current_bit#5!=(byte) 0) goto scroll_bit::@1 [ nxt#31 current_chargen#27 current_bit#5 ] ( main:0::scroll_soft:7::scroll_bit:13 [ nxt#31 current_chargen#27 current_bit#5 ] )
|
||||
to:scroll_bit::@4
|
||||
scroll_bit::@4: scope:[scroll_bit] from scroll_bit::@7
|
||||
[22] call next_char param-assignment [ next_char::c#2 nxt#15 ] ( main:0::scroll_soft:7::scroll_bit:13 [ next_char::c#2 nxt#15 ] )
|
||||
scroll_bit::@4: scope:[scroll_bit] from scroll_bit
|
||||
[20] call next_char param-assignment [ next_char::c#2 nxt#15 ] ( main:0::scroll_soft:7::scroll_bit:13 [ next_char::c#2 nxt#15 ] )
|
||||
to:scroll_bit::@8
|
||||
scroll_bit::@8: scope:[scroll_bit] from scroll_bit::@4
|
||||
[23] (word) scroll_bit::c#0 ← (byte) next_char::c#2 [ scroll_bit::c#0 nxt#15 ] ( main:0::scroll_soft:7::scroll_bit:13 [ scroll_bit::c#0 nxt#15 ] )
|
||||
[24] (word) scroll_bit::c#1 ← (word) scroll_bit::c#0 << (byte) 1 [ scroll_bit::c#1 nxt#15 ] ( main:0::scroll_soft:7::scroll_bit:13 [ scroll_bit::c#1 nxt#15 ] )
|
||||
[25] (word) scroll_bit::c#2 ← (word) scroll_bit::c#1 << (byte) 1 [ scroll_bit::c#2 nxt#15 ] ( main:0::scroll_soft:7::scroll_bit:13 [ scroll_bit::c#2 nxt#15 ] )
|
||||
[26] (word) scroll_bit::c#3 ← (word) scroll_bit::c#2 << (byte) 1 [ scroll_bit::c#3 nxt#15 ] ( main:0::scroll_soft:7::scroll_bit:13 [ scroll_bit::c#3 nxt#15 ] )
|
||||
[27] (byte*~) scroll_bit::$8 ← (const byte*) CHARGEN#0 + (word) scroll_bit::c#3 [ scroll_bit::$8 nxt#15 ] ( main:0::scroll_soft:7::scroll_bit:13 [ scroll_bit::$8 nxt#15 ] )
|
||||
[28] (byte*) current_chargen#5 ← (byte*~) scroll_bit::$8 [ current_chargen#5 nxt#15 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_chargen#5 nxt#15 ] )
|
||||
[21] (word) scroll_bit::c#0 ← (byte) next_char::c#2 [ scroll_bit::c#0 nxt#15 ] ( main:0::scroll_soft:7::scroll_bit:13 [ scroll_bit::c#0 nxt#15 ] )
|
||||
[22] (word~) scroll_bit::$4 ← (word) scroll_bit::c#0 << (byte) 3 [ scroll_bit::$4 nxt#15 ] ( main:0::scroll_soft:7::scroll_bit:13 [ scroll_bit::$4 nxt#15 ] )
|
||||
[23] (byte*~) scroll_bit::$5 ← (const byte*) CHARGEN#0 + (word~) scroll_bit::$4 [ scroll_bit::$5 nxt#15 ] ( main:0::scroll_soft:7::scroll_bit:13 [ scroll_bit::$5 nxt#15 ] )
|
||||
[24] (byte*) current_chargen#5 ← (byte*~) scroll_bit::$5 [ current_chargen#5 nxt#15 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_chargen#5 nxt#15 ] )
|
||||
to:scroll_bit::@1
|
||||
scroll_bit::@1: scope:[scroll_bit] from scroll_bit::@7 scroll_bit::@8
|
||||
[29] (byte*) nxt#37 ← phi( scroll_bit::@7/(byte*) nxt#31 scroll_bit::@8/(byte*) nxt#15 ) [ current_bit#21 nxt#37 current_chargen#18 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#37 current_chargen#18 ] )
|
||||
[29] (byte) current_bit#21 ← phi( scroll_bit::@7/(byte) current_bit#5 scroll_bit::@8/(byte) 128 ) [ current_bit#21 nxt#37 current_chargen#18 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#37 current_chargen#18 ] )
|
||||
[29] (byte*) current_chargen#18 ← phi( scroll_bit::@7/(byte*) current_chargen#27 scroll_bit::@8/(byte*) current_chargen#5 ) [ current_bit#21 nxt#37 current_chargen#18 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#37 current_chargen#18 ] )
|
||||
scroll_bit::@1: scope:[scroll_bit] from scroll_bit scroll_bit::@8
|
||||
[25] (byte*) nxt#36 ← phi( scroll_bit/(byte*) nxt#31 scroll_bit::@8/(byte*) nxt#15 ) [ current_bit#21 nxt#36 current_chargen#19 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#36 current_chargen#19 ] )
|
||||
[25] (byte) current_bit#21 ← phi( scroll_bit/(byte) current_bit#5 scroll_bit::@8/(byte) 128 ) [ current_bit#21 nxt#36 current_chargen#19 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#36 current_chargen#19 ] )
|
||||
[25] (byte*) current_chargen#19 ← phi( scroll_bit/(byte*) current_chargen#27 scroll_bit::@8/(byte*) current_chargen#5 ) [ current_bit#21 nxt#36 current_chargen#19 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#36 current_chargen#19 ] )
|
||||
[26] call scroll_hard param-assignment [ current_bit#21 nxt#36 current_chargen#19 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#36 current_chargen#19 ] )
|
||||
to:scroll_bit::@7
|
||||
scroll_bit::@7: scope:[scroll_bit] from scroll_bit::@1
|
||||
asm { sei }
|
||||
[31] *((const byte*) PROCPORT#0) ← (byte) 50 [ current_bit#21 nxt#37 current_chargen#18 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#37 current_chargen#18 ] )
|
||||
[28] *((const byte*) PROCPORT#0) ← (byte) 50 [ current_bit#21 nxt#36 current_chargen#19 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#36 current_chargen#19 ] )
|
||||
to:scroll_bit::@2
|
||||
scroll_bit::@2: scope:[scroll_bit] from scroll_bit::@1 scroll_bit::@3
|
||||
[32] (byte*) scroll_bit::sc#2 ← phi( scroll_bit::@1/(const byte*) SCREEN#0+(byte) 40+(byte) 39 scroll_bit::@3/(byte*) scroll_bit::sc#1 ) [ current_bit#21 nxt#37 current_chargen#18 scroll_bit::r#2 scroll_bit::sc#2 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#37 current_chargen#18 scroll_bit::r#2 scroll_bit::sc#2 ] )
|
||||
[32] (byte) scroll_bit::r#2 ← phi( scroll_bit::@1/(byte) 0 scroll_bit::@3/(byte) scroll_bit::r#1 ) [ current_bit#21 nxt#37 current_chargen#18 scroll_bit::r#2 scroll_bit::sc#2 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#37 current_chargen#18 scroll_bit::r#2 scroll_bit::sc#2 ] )
|
||||
[33] (byte) scroll_bit::bits#0 ← (byte*) current_chargen#18 *idx (byte) scroll_bit::r#2 [ current_bit#21 nxt#37 current_chargen#18 scroll_bit::r#2 scroll_bit::sc#2 scroll_bit::bits#0 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#37 current_chargen#18 scroll_bit::r#2 scroll_bit::sc#2 scroll_bit::bits#0 ] )
|
||||
[34] (byte~) scroll_bit::$12 ← (byte) scroll_bit::bits#0 & (byte) current_bit#21 [ current_bit#21 nxt#37 current_chargen#18 scroll_bit::r#2 scroll_bit::sc#2 scroll_bit::$12 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#37 current_chargen#18 scroll_bit::r#2 scroll_bit::sc#2 scroll_bit::$12 ] )
|
||||
[35] if((byte~) scroll_bit::$12==(byte) 0) goto scroll_bit::@3 [ current_bit#21 nxt#37 current_chargen#18 scroll_bit::r#2 scroll_bit::sc#2 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#37 current_chargen#18 scroll_bit::r#2 scroll_bit::sc#2 ] )
|
||||
scroll_bit::@2: scope:[scroll_bit] from scroll_bit::@3 scroll_bit::@7
|
||||
[29] (byte*) scroll_bit::sc#2 ← phi( scroll_bit::@3/(byte*) scroll_bit::sc#1 scroll_bit::@7/(const byte*) SCREEN#0+(byte) 40+(byte) 39 ) [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 ] )
|
||||
[29] (byte) scroll_bit::r#2 ← phi( scroll_bit::@3/(byte) scroll_bit::r#1 scroll_bit::@7/(byte) 0 ) [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 ] )
|
||||
[30] (byte) scroll_bit::bits#0 ← (byte*) current_chargen#19 *idx (byte) scroll_bit::r#2 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 scroll_bit::bits#0 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 scroll_bit::bits#0 ] )
|
||||
[31] (byte~) scroll_bit::$10 ← (byte) scroll_bit::bits#0 & (byte) current_bit#21 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 scroll_bit::$10 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 scroll_bit::$10 ] )
|
||||
[32] if((byte~) scroll_bit::$10==(byte) 0) goto scroll_bit::@3 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 ] )
|
||||
to:scroll_bit::@5
|
||||
scroll_bit::@5: scope:[scroll_bit] from scroll_bit::@2
|
||||
to:scroll_bit::@3
|
||||
scroll_bit::@3: scope:[scroll_bit] from scroll_bit::@2 scroll_bit::@5
|
||||
[36] (byte) scroll_bit::b#2 ← phi( scroll_bit::@2/(byte) ' ' scroll_bit::@5/(byte) '*' ) [ current_bit#21 nxt#37 current_chargen#18 scroll_bit::r#2 scroll_bit::sc#2 scroll_bit::b#2 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#37 current_chargen#18 scroll_bit::r#2 scroll_bit::sc#2 scroll_bit::b#2 ] )
|
||||
[37] *((byte*) scroll_bit::sc#2) ← (byte) scroll_bit::b#2 [ current_bit#21 nxt#37 current_chargen#18 scroll_bit::r#2 scroll_bit::sc#2 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#37 current_chargen#18 scroll_bit::r#2 scroll_bit::sc#2 ] )
|
||||
[38] (byte*) scroll_bit::sc#1 ← (byte*) scroll_bit::sc#2 + (byte) 40 [ current_bit#21 nxt#37 current_chargen#18 scroll_bit::r#2 scroll_bit::sc#1 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#37 current_chargen#18 scroll_bit::r#2 scroll_bit::sc#1 ] )
|
||||
[39] (byte) scroll_bit::r#1 ← ++ (byte) scroll_bit::r#2 [ current_bit#21 nxt#37 current_chargen#18 scroll_bit::r#1 scroll_bit::sc#1 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#37 current_chargen#18 scroll_bit::r#1 scroll_bit::sc#1 ] )
|
||||
[40] if((byte) scroll_bit::r#1!=(byte) 8) goto scroll_bit::@2 [ current_bit#21 nxt#37 current_chargen#18 scroll_bit::r#1 scroll_bit::sc#1 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#37 current_chargen#18 scroll_bit::r#1 scroll_bit::sc#1 ] )
|
||||
[33] (byte) scroll_bit::b#2 ← phi( scroll_bit::@2/(byte) ' ' scroll_bit::@5/(byte) 128+(byte) ' ' ) [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 scroll_bit::b#2 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 scroll_bit::b#2 ] )
|
||||
[34] *((byte*) scroll_bit::sc#2) ← (byte) scroll_bit::b#2 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 ] )
|
||||
[35] (byte*) scroll_bit::sc#1 ← (byte*) scroll_bit::sc#2 + (byte) 40 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#1 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#1 ] )
|
||||
[36] (byte) scroll_bit::r#1 ← ++ (byte) scroll_bit::r#2 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#1 scroll_bit::sc#1 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#1 scroll_bit::sc#1 ] )
|
||||
[37] if((byte) scroll_bit::r#1!=(byte) 8) goto scroll_bit::@2 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#1 scroll_bit::sc#1 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#1 scroll_bit::sc#1 ] )
|
||||
to:scroll_bit::@6
|
||||
scroll_bit::@6: scope:[scroll_bit] from scroll_bit::@3
|
||||
[41] *((const byte*) PROCPORT#0) ← (byte) 55 [ current_bit#21 nxt#37 current_chargen#18 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#37 current_chargen#18 ] )
|
||||
[38] *((const byte*) PROCPORT#0) ← (byte) 55 [ current_bit#21 nxt#36 current_chargen#19 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#36 current_chargen#19 ] )
|
||||
asm { cli }
|
||||
to:scroll_bit::@return
|
||||
scroll_bit::@return: scope:[scroll_bit] from scroll_bit::@6
|
||||
[43] return [ current_bit#21 nxt#37 current_chargen#18 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#37 current_chargen#18 ] )
|
||||
[40] return [ current_bit#21 nxt#36 current_chargen#19 ] ( main:0::scroll_soft:7::scroll_bit:13 [ current_bit#21 nxt#36 current_chargen#19 ] )
|
||||
to:@return
|
||||
next_char: scope:[next_char] from scroll_bit::@4
|
||||
[44] (byte) next_char::c#0 ← *((byte*) nxt#31) [ nxt#31 next_char::c#0 ] ( main:0::scroll_soft:7::scroll_bit:13::next_char:22 [ nxt#31 next_char::c#0 ] )
|
||||
[45] if((byte) next_char::c#0!=(byte) '@') goto next_char::@1 [ nxt#31 next_char::c#0 ] ( main:0::scroll_soft:7::scroll_bit:13::next_char:22 [ nxt#31 next_char::c#0 ] )
|
||||
to:next_char::@2
|
||||
next_char::@2: scope:[next_char] from next_char
|
||||
[46] (byte) next_char::c#1 ← *((const byte*) TEXT#0) [ next_char::c#1 ] ( main:0::scroll_soft:7::scroll_bit:13::next_char:22 [ next_char::c#1 ] )
|
||||
to:next_char::@1
|
||||
next_char::@1: scope:[next_char] from next_char next_char::@2
|
||||
[47] (byte) next_char::c#2 ← phi( next_char/(byte) next_char::c#0 next_char::@2/(byte) next_char::c#1 ) [ next_char::c#2 nxt#18 ] ( main:0::scroll_soft:7::scroll_bit:13::next_char:22 [ next_char::c#2 nxt#18 ] )
|
||||
[47] (byte*) nxt#18 ← phi( next_char/(byte*) nxt#31 next_char::@2/(const byte*) TEXT#0 ) [ next_char::c#2 nxt#18 ] ( main:0::scroll_soft:7::scroll_bit:13::next_char:22 [ next_char::c#2 nxt#18 ] )
|
||||
[48] (byte*) nxt#15 ← ++ (byte*) nxt#18 [ next_char::c#2 nxt#15 ] ( main:0::scroll_soft:7::scroll_bit:13::next_char:22 [ next_char::c#2 nxt#15 ] )
|
||||
to:next_char::@return
|
||||
next_char::@return: scope:[next_char] from next_char::@1
|
||||
[49] return [ next_char::c#2 nxt#15 ] ( main:0::scroll_soft:7::scroll_bit:13::next_char:22 [ next_char::c#2 nxt#15 ] )
|
||||
to:@return
|
||||
scroll_hard: scope:[scroll_hard] from scroll_bit
|
||||
[50] phi() [ ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:18 [ current_bit#29 nxt#31 current_chargen#27 ] )
|
||||
scroll_hard: scope:[scroll_hard] from scroll_bit::@1
|
||||
[41] phi() [ ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:26 [ current_bit#21 nxt#36 current_chargen#19 ] )
|
||||
to:scroll_hard::@1
|
||||
scroll_hard::@1: scope:[scroll_hard] from scroll_hard scroll_hard::@1
|
||||
[51] (byte) scroll_hard::i#2 ← phi( scroll_hard/(byte) 0 scroll_hard::@1/(byte) scroll_hard::i#1 ) [ scroll_hard::i#2 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:18 [ current_bit#29 nxt#31 current_chargen#27 scroll_hard::i#2 ] )
|
||||
[52] (byte~) scroll_hard::$17 ← (const byte[]) scroll_hard::line0#0+(byte) 1 *idx (byte) scroll_hard::i#2 [ scroll_hard::i#2 scroll_hard::$17 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:18 [ current_bit#29 nxt#31 current_chargen#27 scroll_hard::i#2 scroll_hard::$17 ] )
|
||||
[53] *((const byte[]) scroll_hard::line0#0 + (byte) scroll_hard::i#2) ← (byte~) scroll_hard::$17 [ scroll_hard::i#2 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:18 [ current_bit#29 nxt#31 current_chargen#27 scroll_hard::i#2 ] )
|
||||
[54] (byte~) scroll_hard::$19 ← (const byte[]) scroll_hard::line1#0+(byte) 1 *idx (byte) scroll_hard::i#2 [ scroll_hard::i#2 scroll_hard::$19 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:18 [ current_bit#29 nxt#31 current_chargen#27 scroll_hard::i#2 scroll_hard::$19 ] )
|
||||
[55] *((const byte[]) scroll_hard::line1#0 + (byte) scroll_hard::i#2) ← (byte~) scroll_hard::$19 [ scroll_hard::i#2 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:18 [ current_bit#29 nxt#31 current_chargen#27 scroll_hard::i#2 ] )
|
||||
[56] (byte~) scroll_hard::$21 ← (const byte[]) scroll_hard::line2#0+(byte) 1 *idx (byte) scroll_hard::i#2 [ scroll_hard::i#2 scroll_hard::$21 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:18 [ current_bit#29 nxt#31 current_chargen#27 scroll_hard::i#2 scroll_hard::$21 ] )
|
||||
[57] *((const byte[]) scroll_hard::line2#0 + (byte) scroll_hard::i#2) ← (byte~) scroll_hard::$21 [ scroll_hard::i#2 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:18 [ current_bit#29 nxt#31 current_chargen#27 scroll_hard::i#2 ] )
|
||||
[58] (byte~) scroll_hard::$23 ← (const byte[]) scroll_hard::line3#0+(byte) 1 *idx (byte) scroll_hard::i#2 [ scroll_hard::i#2 scroll_hard::$23 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:18 [ current_bit#29 nxt#31 current_chargen#27 scroll_hard::i#2 scroll_hard::$23 ] )
|
||||
[59] *((const byte[]) scroll_hard::line3#0 + (byte) scroll_hard::i#2) ← (byte~) scroll_hard::$23 [ scroll_hard::i#2 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:18 [ current_bit#29 nxt#31 current_chargen#27 scroll_hard::i#2 ] )
|
||||
[60] (byte~) scroll_hard::$25 ← (const byte[]) scroll_hard::line4#0+(byte) 1 *idx (byte) scroll_hard::i#2 [ scroll_hard::i#2 scroll_hard::$25 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:18 [ current_bit#29 nxt#31 current_chargen#27 scroll_hard::i#2 scroll_hard::$25 ] )
|
||||
[61] *((const byte[]) scroll_hard::line4#0 + (byte) scroll_hard::i#2) ← (byte~) scroll_hard::$25 [ scroll_hard::i#2 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:18 [ current_bit#29 nxt#31 current_chargen#27 scroll_hard::i#2 ] )
|
||||
[62] (byte~) scroll_hard::$27 ← (const byte[]) scroll_hard::line5#0+(byte) 1 *idx (byte) scroll_hard::i#2 [ scroll_hard::i#2 scroll_hard::$27 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:18 [ current_bit#29 nxt#31 current_chargen#27 scroll_hard::i#2 scroll_hard::$27 ] )
|
||||
[63] *((const byte[]) scroll_hard::line5#0 + (byte) scroll_hard::i#2) ← (byte~) scroll_hard::$27 [ scroll_hard::i#2 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:18 [ current_bit#29 nxt#31 current_chargen#27 scroll_hard::i#2 ] )
|
||||
[64] (byte~) scroll_hard::$29 ← (const byte[]) scroll_hard::line6#0+(byte) 1 *idx (byte) scroll_hard::i#2 [ scroll_hard::i#2 scroll_hard::$29 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:18 [ current_bit#29 nxt#31 current_chargen#27 scroll_hard::i#2 scroll_hard::$29 ] )
|
||||
[65] *((const byte[]) scroll_hard::line6#0 + (byte) scroll_hard::i#2) ← (byte~) scroll_hard::$29 [ scroll_hard::i#2 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:18 [ current_bit#29 nxt#31 current_chargen#27 scroll_hard::i#2 ] )
|
||||
[66] (byte~) scroll_hard::$31 ← (const byte[]) scroll_hard::line7#0+(byte) 1 *idx (byte) scroll_hard::i#2 [ scroll_hard::i#2 scroll_hard::$31 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:18 [ current_bit#29 nxt#31 current_chargen#27 scroll_hard::i#2 scroll_hard::$31 ] )
|
||||
[67] *((const byte[]) scroll_hard::line7#0 + (byte) scroll_hard::i#2) ← (byte~) scroll_hard::$31 [ scroll_hard::i#2 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:18 [ current_bit#29 nxt#31 current_chargen#27 scroll_hard::i#2 ] )
|
||||
[68] (byte) scroll_hard::i#1 ← ++ (byte) scroll_hard::i#2 [ scroll_hard::i#1 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:18 [ current_bit#29 nxt#31 current_chargen#27 scroll_hard::i#1 ] )
|
||||
[69] if((byte) scroll_hard::i#1!=(byte) 39) goto scroll_hard::@1 [ scroll_hard::i#1 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:18 [ current_bit#29 nxt#31 current_chargen#27 scroll_hard::i#1 ] )
|
||||
[42] (byte) scroll_hard::i#2 ← phi( scroll_hard/(byte) 0 scroll_hard::@1/(byte) scroll_hard::i#1 ) [ scroll_hard::i#2 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:26 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] )
|
||||
[43] (byte~) scroll_hard::$17 ← (const byte[]) scroll_hard::line0#0+(byte) 1 *idx (byte) scroll_hard::i#2 [ scroll_hard::i#2 scroll_hard::$17 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:26 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 scroll_hard::$17 ] )
|
||||
[44] *((const byte[]) scroll_hard::line0#0 + (byte) scroll_hard::i#2) ← (byte~) scroll_hard::$17 [ scroll_hard::i#2 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:26 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] )
|
||||
[45] (byte~) scroll_hard::$19 ← (const byte[]) scroll_hard::line1#0+(byte) 1 *idx (byte) scroll_hard::i#2 [ scroll_hard::i#2 scroll_hard::$19 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:26 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 scroll_hard::$19 ] )
|
||||
[46] *((const byte[]) scroll_hard::line1#0 + (byte) scroll_hard::i#2) ← (byte~) scroll_hard::$19 [ scroll_hard::i#2 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:26 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] )
|
||||
[47] (byte~) scroll_hard::$21 ← (const byte[]) scroll_hard::line2#0+(byte) 1 *idx (byte) scroll_hard::i#2 [ scroll_hard::i#2 scroll_hard::$21 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:26 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 scroll_hard::$21 ] )
|
||||
[48] *((const byte[]) scroll_hard::line2#0 + (byte) scroll_hard::i#2) ← (byte~) scroll_hard::$21 [ scroll_hard::i#2 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:26 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] )
|
||||
[49] (byte~) scroll_hard::$23 ← (const byte[]) scroll_hard::line3#0+(byte) 1 *idx (byte) scroll_hard::i#2 [ scroll_hard::i#2 scroll_hard::$23 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:26 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 scroll_hard::$23 ] )
|
||||
[50] *((const byte[]) scroll_hard::line3#0 + (byte) scroll_hard::i#2) ← (byte~) scroll_hard::$23 [ scroll_hard::i#2 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:26 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] )
|
||||
[51] (byte~) scroll_hard::$25 ← (const byte[]) scroll_hard::line4#0+(byte) 1 *idx (byte) scroll_hard::i#2 [ scroll_hard::i#2 scroll_hard::$25 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:26 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 scroll_hard::$25 ] )
|
||||
[52] *((const byte[]) scroll_hard::line4#0 + (byte) scroll_hard::i#2) ← (byte~) scroll_hard::$25 [ scroll_hard::i#2 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:26 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] )
|
||||
[53] (byte~) scroll_hard::$27 ← (const byte[]) scroll_hard::line5#0+(byte) 1 *idx (byte) scroll_hard::i#2 [ scroll_hard::i#2 scroll_hard::$27 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:26 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 scroll_hard::$27 ] )
|
||||
[54] *((const byte[]) scroll_hard::line5#0 + (byte) scroll_hard::i#2) ← (byte~) scroll_hard::$27 [ scroll_hard::i#2 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:26 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] )
|
||||
[55] (byte~) scroll_hard::$29 ← (const byte[]) scroll_hard::line6#0+(byte) 1 *idx (byte) scroll_hard::i#2 [ scroll_hard::i#2 scroll_hard::$29 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:26 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 scroll_hard::$29 ] )
|
||||
[56] *((const byte[]) scroll_hard::line6#0 + (byte) scroll_hard::i#2) ← (byte~) scroll_hard::$29 [ scroll_hard::i#2 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:26 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] )
|
||||
[57] (byte~) scroll_hard::$31 ← (const byte[]) scroll_hard::line7#0+(byte) 1 *idx (byte) scroll_hard::i#2 [ scroll_hard::i#2 scroll_hard::$31 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:26 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 scroll_hard::$31 ] )
|
||||
[58] *((const byte[]) scroll_hard::line7#0 + (byte) scroll_hard::i#2) ← (byte~) scroll_hard::$31 [ scroll_hard::i#2 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:26 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] )
|
||||
[59] (byte) scroll_hard::i#1 ← ++ (byte) scroll_hard::i#2 [ scroll_hard::i#1 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:26 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#1 ] )
|
||||
[60] if((byte) scroll_hard::i#1!=(byte) 39) goto scroll_hard::@1 [ scroll_hard::i#1 ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:26 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#1 ] )
|
||||
to:scroll_hard::@return
|
||||
scroll_hard::@return: scope:[scroll_hard] from scroll_hard::@1
|
||||
[70] return [ ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:18 [ current_bit#29 nxt#31 current_chargen#27 ] )
|
||||
[61] return [ ] ( main:0::scroll_soft:7::scroll_bit:13::scroll_hard:26 [ current_bit#21 nxt#36 current_chargen#19 ] )
|
||||
to:@return
|
||||
next_char: scope:[next_char] from scroll_bit::@4
|
||||
[62] (byte) next_char::c#0 ← *((byte*) nxt#31) [ nxt#31 next_char::c#0 ] ( main:0::scroll_soft:7::scroll_bit:13::next_char:20 [ nxt#31 next_char::c#0 ] )
|
||||
[63] if((byte) next_char::c#0!=(byte) '@') goto next_char::@1 [ nxt#31 next_char::c#0 ] ( main:0::scroll_soft:7::scroll_bit:13::next_char:20 [ nxt#31 next_char::c#0 ] )
|
||||
to:next_char::@2
|
||||
next_char::@2: scope:[next_char] from next_char
|
||||
[64] (byte) next_char::c#1 ← *((const byte*) TEXT#0) [ next_char::c#1 ] ( main:0::scroll_soft:7::scroll_bit:13::next_char:20 [ next_char::c#1 ] )
|
||||
to:next_char::@1
|
||||
next_char::@1: scope:[next_char] from next_char next_char::@2
|
||||
[65] (byte) next_char::c#2 ← phi( next_char/(byte) next_char::c#0 next_char::@2/(byte) next_char::c#1 ) [ next_char::c#2 nxt#18 ] ( main:0::scroll_soft:7::scroll_bit:13::next_char:20 [ next_char::c#2 nxt#18 ] )
|
||||
[65] (byte*) nxt#18 ← phi( next_char/(byte*) nxt#31 next_char::@2/(const byte*) TEXT#0 ) [ next_char::c#2 nxt#18 ] ( main:0::scroll_soft:7::scroll_bit:13::next_char:20 [ next_char::c#2 nxt#18 ] )
|
||||
[66] (byte*) nxt#15 ← ++ (byte*) nxt#18 [ next_char::c#2 nxt#15 ] ( main:0::scroll_soft:7::scroll_bit:13::next_char:20 [ next_char::c#2 nxt#15 ] )
|
||||
to:next_char::@return
|
||||
next_char::@return: scope:[next_char] from next_char::@1
|
||||
[67] return [ next_char::c#2 nxt#15 ] ( main:0::scroll_soft:7::scroll_bit:13::next_char:20 [ next_char::c#2 nxt#15 ] )
|
||||
to:@return
|
||||
fillscreen: scope:[fillscreen] from main
|
||||
[71] phi() [ ] ( main:0::fillscreen:2 [ ] )
|
||||
[68] phi() [ ] ( main:0::fillscreen:2 [ ] )
|
||||
to:fillscreen::@1
|
||||
fillscreen::@1: scope:[fillscreen] from fillscreen fillscreen::@1
|
||||
[72] (byte*) fillscreen::cursor#2 ← phi( fillscreen/(const byte*) SCREEN#0 fillscreen::@1/(byte*) fillscreen::cursor#1 ) [ fillscreen::cursor#2 ] ( main:0::fillscreen:2 [ fillscreen::cursor#2 ] )
|
||||
[73] *((byte*) fillscreen::cursor#2) ← (const byte) fillscreen::fill#0 [ fillscreen::cursor#2 ] ( main:0::fillscreen:2 [ fillscreen::cursor#2 ] )
|
||||
[74] (byte*) fillscreen::cursor#1 ← ++ (byte*) fillscreen::cursor#2 [ fillscreen::cursor#1 ] ( main:0::fillscreen:2 [ fillscreen::cursor#1 ] )
|
||||
[75] if((byte*) fillscreen::cursor#1<(const byte*) SCREEN#0+(word) 1000) goto fillscreen::@1 [ fillscreen::cursor#1 ] ( main:0::fillscreen:2 [ fillscreen::cursor#1 ] )
|
||||
[69] (byte*) fillscreen::cursor#2 ← phi( fillscreen/(const byte*) SCREEN#0 fillscreen::@1/(byte*) fillscreen::cursor#1 ) [ fillscreen::cursor#2 ] ( main:0::fillscreen:2 [ fillscreen::cursor#2 ] )
|
||||
[70] *((byte*) fillscreen::cursor#2) ← (const byte) fillscreen::fill#0 [ fillscreen::cursor#2 ] ( main:0::fillscreen:2 [ fillscreen::cursor#2 ] )
|
||||
[71] (byte*) fillscreen::cursor#1 ← ++ (byte*) fillscreen::cursor#2 [ fillscreen::cursor#1 ] ( main:0::fillscreen:2 [ fillscreen::cursor#1 ] )
|
||||
[72] if((byte*) fillscreen::cursor#1<(const byte*) SCREEN#0+(word) 1000) goto fillscreen::@1 [ fillscreen::cursor#1 ] ( main:0::fillscreen:2 [ fillscreen::cursor#1 ] )
|
||||
to:fillscreen::@return
|
||||
fillscreen::@return: scope:[fillscreen] from fillscreen::@1
|
||||
[76] return [ ] ( main:0::fillscreen:2 [ ] )
|
||||
[73] return [ ] ( main:0::fillscreen:2 [ ] )
|
||||
to:@return
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -17,13 +17,13 @@
|
||||
(const byte*) TEXT#0 TEXT = (string) "-= this is rex of camelot testing a scroller created in kickc. kickc is an optimizing c-compiler for 6502 assembler. =- @"
|
||||
(byte) current_bit
|
||||
(byte) current_bit#0 current_bit zp ZP_BYTE:2 2.5
|
||||
(byte) current_bit#21 current_bit zp ZP_BYTE:2 0.9375
|
||||
(byte) current_bit#29 current_bit zp ZP_BYTE:2 1.875
|
||||
(byte) current_bit#21 current_bit zp ZP_BYTE:2 0.8823529411764706
|
||||
(byte) current_bit#29 current_bit zp ZP_BYTE:2 2.5
|
||||
(byte) current_bit#5 current_bit zp ZP_BYTE:2 3.0
|
||||
(byte*) current_chargen
|
||||
(byte*) current_chargen#0 current_chargen zp ZP_PTR_BYTE:3 2.5
|
||||
(byte*) current_chargen#18 current_chargen zp ZP_PTR_BYTE:3 1.0625
|
||||
(byte*) current_chargen#27 current_chargen zp ZP_PTR_BYTE:3 1.3636363636363638
|
||||
(byte*) current_chargen#19 current_chargen zp ZP_PTR_BYTE:3 1.0
|
||||
(byte*) current_chargen#27 current_chargen zp ZP_PTR_BYTE:3 1.666666666666667
|
||||
(byte*) current_chargen#5 current_chargen zp ZP_PTR_BYTE:3 4.0
|
||||
(void()) fillscreen((byte*) fillscreen::screen , (byte) fillscreen::fill)
|
||||
(label) fillscreen::@1
|
||||
@ -51,18 +51,19 @@
|
||||
(byte) next_char::return
|
||||
(byte*) nxt
|
||||
(byte*) nxt#0 nxt zp ZP_PTR_BYTE:7 2.5
|
||||
(byte*) nxt#15 nxt zp ZP_PTR_BYTE:7 0.4444444444444444
|
||||
(byte*) nxt#15 nxt zp ZP_PTR_BYTE:7 0.5714285714285714
|
||||
(byte*) nxt#18 nxt zp ZP_PTR_BYTE:7 4.0
|
||||
(byte*) nxt#31 nxt zp ZP_PTR_BYTE:7 1.3076923076923075
|
||||
(byte*) nxt#37 nxt zp ZP_PTR_BYTE:7 0.375
|
||||
(byte*) nxt#31 nxt zp ZP_PTR_BYTE:7 1.5454545454545456
|
||||
(byte*) nxt#36 nxt zp ZP_PTR_BYTE:7 0.3529411764705882
|
||||
(byte) scroll
|
||||
(byte) scroll#0 reg byte x 2.5
|
||||
(byte) scroll#18 reg byte x 3.25
|
||||
(byte) scroll#3 reg byte x 3.0
|
||||
(void()) scroll_bit()
|
||||
(byte~) scroll_bit::$1 reg byte a 4.0
|
||||
(byte~) scroll_bit::$12 reg byte a 22.0
|
||||
(byte*~) scroll_bit::$8 $8 zp ZP_PTR_BYTE:3 4.0
|
||||
(byte~) scroll_bit::$0 reg byte a 4.0
|
||||
(byte~) scroll_bit::$10 reg byte a 22.0
|
||||
(word~) scroll_bit::$4 $4 zp ZP_WORD:9 4.0
|
||||
(byte*~) scroll_bit::$5 $5 zp ZP_PTR_BYTE:3 4.0
|
||||
(label) scroll_bit::@1
|
||||
(label) scroll_bit::@2
|
||||
(label) scroll_bit::@3
|
||||
@ -78,9 +79,6 @@
|
||||
(byte) scroll_bit::bits#0 reg byte a 22.0
|
||||
(word) scroll_bit::c
|
||||
(word) scroll_bit::c#0 c zp ZP_WORD:9 4.0
|
||||
(word) scroll_bit::c#1 c zp ZP_WORD:9 4.0
|
||||
(word) scroll_bit::c#2 c zp ZP_WORD:9 4.0
|
||||
(word) scroll_bit::c#3 c zp ZP_WORD:9 4.0
|
||||
(byte) scroll_bit::r
|
||||
(byte) scroll_bit::r#1 reg byte x 16.5
|
||||
(byte) scroll_bit::r#2 reg byte x 4.714285714285714
|
||||
@ -124,17 +122,17 @@
|
||||
|
||||
reg byte x [ scroll#18 scroll#0 scroll#3 ]
|
||||
zp ZP_BYTE:2 [ current_bit#29 current_bit#0 current_bit#21 current_bit#5 ]
|
||||
zp ZP_PTR_BYTE:3 [ current_chargen#27 current_chargen#0 current_chargen#18 current_chargen#5 fillscreen::cursor#2 fillscreen::cursor#1 scroll_bit::$8 ]
|
||||
zp ZP_PTR_BYTE:3 [ current_chargen#27 current_chargen#0 current_chargen#19 current_chargen#5 fillscreen::cursor#2 fillscreen::cursor#1 scroll_bit::$5 ]
|
||||
reg byte x [ scroll_bit::r#2 scroll_bit::r#1 ]
|
||||
zp ZP_PTR_BYTE:5 [ scroll_bit::sc#2 scroll_bit::sc#1 ]
|
||||
reg byte a [ scroll_bit::b#2 ]
|
||||
zp ZP_PTR_BYTE:7 [ nxt#18 nxt#31 nxt#0 nxt#37 nxt#15 ]
|
||||
reg byte a [ next_char::c#2 next_char::c#0 next_char::c#1 ]
|
||||
reg byte x [ scroll_hard::i#2 scroll_hard::i#1 ]
|
||||
reg byte a [ scroll_bit::$1 ]
|
||||
zp ZP_WORD:9 [ scroll_bit::c#0 scroll_bit::c#1 scroll_bit::c#2 scroll_bit::c#3 ]
|
||||
zp ZP_PTR_BYTE:7 [ nxt#18 nxt#31 nxt#0 nxt#36 nxt#15 ]
|
||||
reg byte a [ next_char::c#2 next_char::c#0 next_char::c#1 ]
|
||||
reg byte a [ scroll_bit::$0 ]
|
||||
zp ZP_WORD:9 [ scroll_bit::c#0 scroll_bit::$4 ]
|
||||
reg byte a [ scroll_bit::bits#0 ]
|
||||
reg byte a [ scroll_bit::$12 ]
|
||||
reg byte a [ scroll_bit::$10 ]
|
||||
reg byte a [ scroll_hard::$17 ]
|
||||
reg byte a [ scroll_hard::$19 ]
|
||||
reg byte a [ scroll_hard::$21 ]
|
||||
|
@ -30,20 +30,17 @@ void scroll_soft() {
|
||||
*SCROLL = scroll;
|
||||
}
|
||||
|
||||
// Scroll the next bit from the current char onto the screen
|
||||
// Scroll the next bit from the current char onto the screen - trigger next char if needed
|
||||
byte* current_chargen = CHARGEN;
|
||||
byte current_bit = 1;
|
||||
void scroll_bit() {
|
||||
scroll_hard();
|
||||
current_bit = current_bit>>1;
|
||||
if(current_bit==0) {
|
||||
word c = next_char();
|
||||
c = c<<1;
|
||||
c = c<<1;
|
||||
c = c<<1;
|
||||
current_chargen = CHARGEN+c;
|
||||
current_chargen = CHARGEN+c<<3;
|
||||
current_bit = $80;
|
||||
}
|
||||
scroll_hard();
|
||||
asm { sei }
|
||||
*PROCPORT = $32;
|
||||
byte* sc = SCREEN+40+39;
|
||||
@ -51,7 +48,7 @@ void scroll_bit() {
|
||||
byte bits = current_chargen[r];
|
||||
byte b = ' ';
|
||||
if((bits & current_bit) != 0) {
|
||||
b = '*';
|
||||
b = 128+' ';
|
||||
}
|
||||
*sc = b;
|
||||
sc = sc+40;
|
||||
|
Loading…
x
Reference in New Issue
Block a user