prog8/compiler/res/prog8lib/virtual/prog8_lib.p8

41 lines
1.0 KiB
Plaintext
Raw Normal View History

2022-03-19 00:20:01 +00:00
; Internal library routines - always included by the compiler
;
; Written by Irmen de Jong (irmen@razorvine.net) - license: GNU GPL 3.0
%import textio
2022-03-19 00:20:01 +00:00
prog8_lib {
%option force_output
2022-03-19 00:20:01 +00:00
sub string_contains(ubyte needle, str haystack) -> ubyte {
2022-03-27 19:59:46 +00:00
repeat {
if @(haystack)==0
return false
if @(haystack)==needle
return true
haystack++
}
}
sub bytearray_contains(ubyte needle, uword haystack_ptr, ubyte num_elements) -> ubyte {
2022-03-27 19:59:46 +00:00
haystack_ptr--
while num_elements {
if haystack_ptr[num_elements]==needle
return true
num_elements--
}
return false
}
sub wordarray_contains(ubyte needle, uword haystack_ptr, ubyte num_elements) -> ubyte {
2022-03-27 19:59:46 +00:00
haystack_ptr += (num_elements-1) * 2
while num_elements {
if peekw(haystack_ptr)==needle
return true
haystack_ptr -= 2
num_elements--
}
return false
}
2022-03-19 00:20:01 +00:00
}