2019-02-17 23:12:29 +00:00
|
|
|
// Tests that casting inside constants in the output handles precedence between cast and + correctly - should generate the following KA-expression ($ff & sumw>>1)+1
|
2018-03-05 00:00:33 +00:00
|
|
|
.pc = $801 "Basic"
|
|
|
|
:BasicUpstart(main)
|
|
|
|
.pc = $80d "Program"
|
|
|
|
main: {
|
|
|
|
.const min = $a
|
|
|
|
.const max = $c8
|
2018-03-11 17:44:47 +00:00
|
|
|
.const sumw = min+max
|
2019-05-18 19:37:34 +00:00
|
|
|
.const sumb = min+max
|
2018-03-10 16:06:42 +00:00
|
|
|
.const midw = (sumw>>1)+1
|
2019-10-20 15:06:17 +00:00
|
|
|
.const midb = (sumb>>1)+1
|
2020-04-30 20:15:59 +00:00
|
|
|
.label SCREEN = $400
|
|
|
|
.label BGCOL = $d021
|
2020-02-23 08:44:36 +00:00
|
|
|
// SCREEN[0] = midw
|
2018-03-05 00:00:33 +00:00
|
|
|
lda #midw
|
2018-08-22 10:40:19 +00:00
|
|
|
sta SCREEN
|
2020-02-23 08:44:36 +00:00
|
|
|
// SCREEN[1] = midb
|
2018-03-05 00:00:33 +00:00
|
|
|
lda #midb
|
|
|
|
sta SCREEN+1
|
2020-02-23 08:44:36 +00:00
|
|
|
// if(SCREEN[0]==SCREEN[1])
|
2018-08-22 10:40:19 +00:00
|
|
|
lda SCREEN
|
2018-04-21 19:38:30 +00:00
|
|
|
cmp SCREEN+1
|
2019-09-29 21:13:37 +00:00
|
|
|
beq __b1
|
2020-02-23 08:44:36 +00:00
|
|
|
// *BGCOL = 2
|
2018-04-21 19:38:30 +00:00
|
|
|
lda #2
|
2018-03-05 00:00:33 +00:00
|
|
|
sta BGCOL
|
2020-02-23 08:44:36 +00:00
|
|
|
// }
|
2018-03-05 00:00:33 +00:00
|
|
|
rts
|
2019-09-29 21:13:37 +00:00
|
|
|
__b1:
|
2020-02-23 08:44:36 +00:00
|
|
|
// *BGCOL = 5
|
2018-04-21 19:38:30 +00:00
|
|
|
lda #5
|
2018-03-05 00:00:33 +00:00
|
|
|
sta BGCOL
|
2019-04-02 06:28:13 +00:00
|
|
|
rts
|
2018-03-05 00:00:33 +00:00
|
|
|
}
|