mirror of
https://github.com/irmen/prog8.git
synced 2024-11-02 22:04:40 +00:00
55 lines
1.0 KiB
Plaintext
55 lines
1.0 KiB
Plaintext
|
%target cx16
|
||
|
%import textio
|
||
|
%zeropage basicsafe
|
||
|
%option no_sysinit
|
||
|
; simple line comment; consecutive lines can be folded
|
||
|
; TODO: something
|
||
|
; FIXME #31
|
||
|
main {
|
||
|
str input = "string literal"
|
||
|
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
|
||
|
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
|
||
|
}
|
||
|
repeat {
|
||
|
ch = input[index+5]
|
||
|
when ch {
|
||
|
0 -> {
|
||
|
break
|
||
|
}
|
||
|
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
|
||
|
}
|
||
|
}
|