mirror of
https://github.com/irmen/prog8.git
synced 2024-11-25 04:31:20 +00:00
59 lines
1.1 KiB
Lua
59 lines
1.1 KiB
Lua
%import textio
|
|
%zeropage basicsafe
|
|
%option no_sysinit
|
|
; simple line comment; consecutive lines can be folded
|
|
; TODO: something
|
|
; FIXME #31
|
|
main {
|
|
str input = "string literal\r\n\"\\"
|
|
bool bb = false
|
|
ubyte c = 'x' ; character literal in bold
|
|
ubyte decimal = 0 + 1 - 2 * 3
|
|
float pi = 3.1415
|
|
ubyte boolean = true or false and true xor not false
|
|
str temp = "?"
|
|
word[] numbers = [$80ea, %0101011, 23]
|
|
inline asmsub foo(ubyte char @A) clobbers(Y) {
|
|
asm {{
|
|
a_label:
|
|
nop ; comment inside asm
|
|
bcc _done
|
|
sec
|
|
_done: rts
|
|
}}
|
|
}
|
|
inline sub start(ubyte char @A) -> void {
|
|
ubyte @zp ch = min(max, n, (x, 5))
|
|
if (true) {
|
|
goto nirvana
|
|
} else {
|
|
return 0
|
|
}
|
|
unroll 80 {
|
|
cx16.r0++
|
|
}
|
|
repeat {
|
|
ch = input[index+5]
|
|
when ch {
|
|
0 -> {
|
|
break
|
|
continue
|
|
}
|
|
else -> {
|
|
temp[0] = ch
|
|
txt.print(temp) ; wrongly optimized to
|
|
; lda #$3f
|
|
; jsr txt.chrout
|
|
|
|
; with -noopt the above line is correctly turned into
|
|
; ldy #>temp
|
|
; ldy #<temp
|
|
; jsr txt.print
|
|
}
|
|
}
|
|
index++
|
|
}
|
|
return
|
|
}
|
|
}
|