mirror of
https://github.com/irmen/prog8.git
synced 2024-08-17 02:28:56 +00:00
104 lines
2.6 KiB
Plaintext
104 lines
2.6 KiB
Plaintext
%output basic
|
|
%import c64lib
|
|
|
|
|
|
~ main {
|
|
var .byte v1t = true
|
|
var .byte v1f = false
|
|
var .word v2t = true
|
|
var .word v2f = false
|
|
var .float v3t = true
|
|
var .float v3f = false
|
|
var .text v4t = true
|
|
var .text v4f = false
|
|
var .array(3) v5t = true
|
|
var .array(3) v5f = false
|
|
var .array(10) v6t = true
|
|
var .array(10) v6f = false
|
|
var .wordarray(3) v7t = true
|
|
var .wordarray(3) v7f = false
|
|
var .wordarray(10) v8t = true
|
|
var .wordarray(10) v8f = false
|
|
var .matrix(2,2) v9t = true
|
|
var .matrix(2,2) v9f = false
|
|
var .matrix(5,5) v10t = true
|
|
var .matrix(5,5) v10f = false
|
|
|
|
const .byte c1t=true
|
|
const .byte c1f=false
|
|
const .word c2t=true
|
|
const .word c2f=false
|
|
const .float c3t=true
|
|
const .float c3f=false
|
|
|
|
memory border = $d020
|
|
|
|
|
|
start:
|
|
%breakpoint abc,def
|
|
|
|
XY+=255
|
|
XY+=256
|
|
XY+=257
|
|
XY-=255
|
|
XY-=256
|
|
XY-=257
|
|
|
|
v3t++
|
|
v3t+=1
|
|
v3t+=1 ; @todo? (optimize) join with previous
|
|
v3t+=0 ; is removed.
|
|
v3t+=1 ; @todo? (optimize) join with previous
|
|
v3t+=1 ; @todo? (optimize) join with previous
|
|
v3t=2.23424 ; @todo store as constant float with generated name, replace value node
|
|
v3t=2.23411 ; @todo store as constant float with generated name, replace value node
|
|
v3t=1.23411 + 1; @todo store as constant float with generated name, replace value node
|
|
; v3t+=2.23424 ; @todo store as constant float with generated name, replace value node
|
|
; v3t+=2.23424 ; @todo store as constant float with generated name, replace value node
|
|
; v3t+=2.23411 ; @todo store as constant float with generated name, replace value node
|
|
; v3t+=2.23411 ; @todo store as constant float with generated name, replace value node
|
|
v3t=2.23424 * v3t ; @todo store as constant float with generated name, replace value node
|
|
XY*=2
|
|
XY*=3
|
|
X=3 ; @todo optimize consecutive assignments
|
|
X=4
|
|
X=5
|
|
X=A=6
|
|
A=X=6
|
|
X=A=6
|
|
X=A=9
|
|
X=A=10
|
|
v3t=1 ; @todo optimize consecutive assignments
|
|
v3t=2
|
|
v3t=3
|
|
border = 0 ; @todo do not optimize consecucutive assignments to a memory var
|
|
border = 1
|
|
border = 2
|
|
|
|
XY=XY/0 ; @todo zerodiv (during expression to code generation)
|
|
XY=XY//0 ; @todo zerodiv (during expression to code generation)
|
|
XY*=2.23424 ; @todo store as constant float with generated name, replace value node
|
|
XY*=2.23424 * v3t ; @todo store as constant float with generated name, replace value node
|
|
;v3t*=2.23424 * v3t ; @todo store as constant float with generated name, replace value node
|
|
; A++
|
|
; X--
|
|
; A+=1
|
|
; X-=2
|
|
; [AX]++
|
|
; [AX .byte]++
|
|
; [AX .word]++
|
|
; [AX .float]++
|
|
; [$ccc0]++
|
|
; [$ccc0 .byte]++
|
|
; [$ccc0 .word]++
|
|
; [$ccc0 .float]++
|
|
; A+=2
|
|
; A+=3
|
|
; XY+=6
|
|
; XY+=222
|
|
; XY+=666
|
|
|
|
return 44
|
|
}
|
|
|