mirror of
https://github.com/KarolS/millfork.git
synced 2026-04-19 10:42:10 +00:00
Add strzpaste and scrstrzpaste
This commit is contained in:
@@ -4,6 +4,7 @@ import string
|
||||
alias scrstrzlen = strzlen
|
||||
alias scrstrzcmp = strzcmp
|
||||
alias scrstrzcopy = strzcopy
|
||||
alias scrstrzpaste = strzpaste
|
||||
alias scrstrzappendchar = strzappendchar
|
||||
alias scrstrz2word = strz2word
|
||||
alias scrstrzappend = strzappend
|
||||
|
||||
@@ -39,3 +39,15 @@ void scrstrzcopy(pointer dest, pointer src) {
|
||||
i += 1
|
||||
} while c != nullchar_scr
|
||||
}
|
||||
|
||||
void strzpaste(pointer dest, pointer src) {
|
||||
byte i
|
||||
byte c
|
||||
i = 0
|
||||
while true {
|
||||
c = src[i]
|
||||
if c == nullchar_scr { return }
|
||||
dest[i] = c
|
||||
i += 1
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,6 +42,18 @@ void scrstrzcopy(pointer dest, pointer src) {
|
||||
? JP NZ, ___scrstrzcopy_loop
|
||||
}
|
||||
}
|
||||
void scrstrzpaste(pointer dest, pointer src) {
|
||||
asm {
|
||||
? LD HL,(src)
|
||||
? LD DE,(dest)
|
||||
___scrstrzpaste_loop:
|
||||
LD A,(HL)
|
||||
? CP nullchar_scr
|
||||
? RET Z
|
||||
LD (DE),A
|
||||
? JP ___scrstrzpaste_loop
|
||||
}
|
||||
}
|
||||
#else
|
||||
void scrstrzcopy(pointer dest, pointer src) {
|
||||
byte c
|
||||
@@ -52,4 +64,14 @@ void scrstrzcopy(pointer dest, pointer src) {
|
||||
dest += 1
|
||||
} while c != nullchar_scr
|
||||
}
|
||||
void scrstrzpaste(pointer dest, pointer src) {
|
||||
byte c
|
||||
while true {
|
||||
c = src[0]
|
||||
if c == nullchar_scr { return }
|
||||
dest[0] = c
|
||||
src += 1
|
||||
dest += 1
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -35,3 +35,15 @@ void strzcopy(pointer dest, pointer src) {
|
||||
i += 1
|
||||
} while c != nullchar
|
||||
}
|
||||
|
||||
void strzpaste(pointer dest, pointer src) {
|
||||
byte i
|
||||
byte c
|
||||
i = 0
|
||||
while true {
|
||||
c = src[i]
|
||||
if c == nullchar { return }
|
||||
dest[i] = c
|
||||
i += 1
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,6 +38,18 @@ void strzcopy(pointer dest, pointer src) {
|
||||
? JP NZ, ___strzcopy_loop
|
||||
}
|
||||
}
|
||||
void strzpaste(pointer dest, pointer src) {
|
||||
asm {
|
||||
? LD HL,(src)
|
||||
? LD DE,(dest)
|
||||
___strzpaste_loop:
|
||||
LD A,(HL)
|
||||
? CP nullchar
|
||||
? RET Z
|
||||
LD (DE),A
|
||||
? JP ___strzpaste_loop
|
||||
}
|
||||
}
|
||||
#else
|
||||
void strzcopy(pointer dest, pointer src) {
|
||||
byte c
|
||||
@@ -48,4 +60,14 @@ void strzcopy(pointer dest, pointer src) {
|
||||
dest += 1
|
||||
} while c != nullchar
|
||||
}
|
||||
void strzpaste(pointer dest, pointer src) {
|
||||
byte c
|
||||
while true {
|
||||
c = src[0]
|
||||
if c == nullchar { return }
|
||||
dest[0] = c
|
||||
src += 1
|
||||
dest += 1
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user