# ========== Builtin functions ========== function l $.cstring_len(l %str) { @start %count =l copy 0 @loop %address =l add %str, %count %value =w loadub %address jnz %value, @continue, @end @continue %count =l add %count, 1 jmp @loop @end ret %count } function $.memcpy(l %source, l %destination, l %length) { @start %count =l copy 0 @loop %condition =w cultl %count, %length jnz %condition, @continue, @end @continue %source_address =l add %source, %count %destination_address =l add %destination, %count %value =w loadub %source_address storeb %value, %destination_address %count =l add %count, 1 jmp @loop @end ret } function $.memset(l %destination, l %value, l %length) { @start %count =l copy 0 @loop %condition =w cultl %count, %length jnz %condition, @continue, @end @continue %destination_address =l add %destination, %count storeb %value, %destination_address %count =l add %count, 1 jmp @loop @end ret } function l $.array_size(l %array) { @start %size =l loadl %array ret %size } # ========== Referenced structs ========== # ========== Struct definitions ========== # ========== Function definitions ========== export function l $main(l %args) { @start ret 0 } # ========== cstring literals ========== # ========== string literals ==========