2017-12-21 13:52:30 +00:00
|
|
|
; source IL file
|
|
|
|
; these are comments
|
|
|
|
|
2017-12-28 22:03:59 +00:00
|
|
|
output prg, basic ; create a c-64 program with basic SYS call to launch it
|
|
|
|
zp clobber,restore ; clobber over the zp memory normally used by basic/kernel rom, frees up more zp
|
2017-12-21 13:52:30 +00:00
|
|
|
|
|
|
|
~main
|
|
|
|
{
|
|
|
|
memory borderb1 = $d020
|
|
|
|
memory .byte borderb2 = $d020
|
|
|
|
memory .word screencolors = $d020
|
|
|
|
memory .array($10) screenblock1 = $0400 ; 10 bytes
|
|
|
|
memory .array($0100) screenblock2 = $0500 ; 256 bytes
|
|
|
|
memory .array($0234) screenblock3 = $2000 ; some weird size
|
|
|
|
memory .wordarray($20) screenblock4 = $0600 ; 32 words
|
|
|
|
memory .matrix(40,25) charscreen = $0400
|
|
|
|
var .array($10) var1 = $aa
|
|
|
|
var .wordarray($10) var2 = $9988
|
|
|
|
var .array($10) var3 = $11
|
|
|
|
var var4
|
|
|
|
var .matrix(40,25) vcharscreen ; init with 0
|
|
|
|
var .matrix(40,25) vcharscreen2 = 111 ; init with 111
|
|
|
|
|
|
|
|
start
|
|
|
|
; set some colors
|
|
|
|
Y = 0
|
|
|
|
borderb1 = Y
|
|
|
|
X=Y=A = 0
|
|
|
|
X = 1
|
|
|
|
screencolors = X
|
|
|
|
borderb1 = 0
|
|
|
|
borderb2 = 1
|
|
|
|
screencolors = $0
|
|
|
|
screencolors = $0207
|
|
|
|
|
|
|
|
; fill block of memory with a single value (byte or word)
|
|
|
|
;screenblock1,* = A
|
|
|
|
;screenblock1,* = X
|
|
|
|
;screenblock1,* = Y
|
|
|
|
;screenblock1,* = 2
|
|
|
|
;screenblock1,* = $aaa
|
|
|
|
;screenblock2,* = A
|
|
|
|
;screenblock2,* = X
|
|
|
|
;screenblock2,* = Y
|
|
|
|
;screenblock2,* = 2
|
|
|
|
;screenblock2,* = $aaa
|
|
|
|
;screenblock3,* = A
|
|
|
|
;screenblock3,* = X
|
|
|
|
;screenblock3,* = Y
|
|
|
|
;screenblock3,* = 2
|
|
|
|
;screenblock3,* = $aaa
|
|
|
|
;screenblock4,* = A
|
|
|
|
;screenblock4,* = X
|
|
|
|
;screenblock4,* = Y
|
|
|
|
;screenblock4,* = 2
|
|
|
|
;screenblock4,* = $aaa
|
|
|
|
|
|
|
|
; swap bytes
|
|
|
|
;A = var1[0]
|
|
|
|
;X = var1[1]
|
|
|
|
;var1[0] = X
|
|
|
|
;var1[1] = A
|
|
|
|
|
|
|
|
; swap words
|
|
|
|
;A = var2[0] ; must crash, cannot put word in register
|
|
|
|
;X = var2[1] ;crash
|
|
|
|
;var2[0] = X ; ok, 00-padded
|
|
|
|
;var2[1] = A ; ok, 00-padded
|
|
|
|
|
|
|
|
return
|
|
|
|
}
|