mirror of
				https://github.com/irmen/prog8.git
				synced 2025-11-03 19:16:13 +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
 | 
						|
	}
 | 
						|
}
 |