summaryrefslogtreecommitdiffstats
path: root/qemu/roms/openbios/forth/lib/string.fs
diff options
context:
space:
mode:
Diffstat (limited to 'qemu/roms/openbios/forth/lib/string.fs')
-rw-r--r--qemu/roms/openbios/forth/lib/string.fs141
1 files changed, 0 insertions, 141 deletions
diff --git a/qemu/roms/openbios/forth/lib/string.fs b/qemu/roms/openbios/forth/lib/string.fs
deleted file mode 100644
index f97db232f..000000000
--- a/qemu/roms/openbios/forth/lib/string.fs
+++ /dev/null
@@ -1,141 +0,0 @@
-\ tag: misc useful functions
-\
-\ Misc useful functions
-\
-\ Copyright (C) 2003 Samuel Rydh
-\
-\ See the file "COPYING" for further information about
-\ the copyright and warranty status of this work.
-\
-
-\ compare c-string with (str len) pair
-: comp0 ( cstr str len -- 0|-1|1 )
- 3dup
- comp ?dup if >r 3drop r> exit then
- nip + c@ 0<> if 1 else 0 then
-;
-
-\ returns 0 if the strings match
-: strcmp ( str1 len1 str2 len2 -- 0|1 )
- rot over <> if 3drop 1 exit then
- comp if 1 else 0 then
-;
-
-: strchr ( str len char -- where|0 )
- >r
- begin
- 1- dup 0>=
- while
- ( str len )
- over c@ r@ = if r> 2drop exit then
- swap 1+ swap
- repeat
- r> 3drop 0
-;
-
-: cstrlen ( cstr -- len )
- dup
- begin dup c@ while 1+ repeat
- swap -
-;
-
-: strdup ( str len -- newstr len )
- dup if
- dup >r
- dup alloc-mem dup >r swap move
- r> r>
- else
- 2drop 0 0
- then
-;
-
-: dict-strdup ( str len -- dict-addr len )
- dup here swap allot null-align
- swap 2dup >r >r move r> r>
-;
-
-\ -----------------------------------------------------
-\ string copy and cat variants
-\ -----------------------------------------------------
-
-: tmpstrcat ( addr2 len2 addr1 len1 tmpbuf -- buf len1+len2 tmpbuf+l1+l2 )
- \ save return arguments
- dup 2 pick + 4 pick + >r ( R: buf+l1+l2 )
- over 4 pick + >r
- dup >r
- \ copy...
- 2dup + >r
- swap move r> swap move
- r> r> r>
-;
-
-: tmpstrcpy ( addr1 len1 tmpbuf -- tmpbuf len1 tmpbuf+len1 )
- swap 2dup >r >r move
- r> r> 2dup +
-;
-
-
-
-\ -----------------------------------------------------
-\ number to string conversion
-\ -----------------------------------------------------
-
-: numtostr ( num buf -- buf len )
- swap rdepth -rot
- ( rdepth buf num )
- begin
- base @ u/mod swap
- \ dup 0< if base @ + then
- dup a < if ascii 0 else ascii a a - then + >r
- ?dup 0=
- until
-
- rdepth rot - 0
- ( buf len cnt )
- begin
- r> over 4 pick + c!
- 1+ 2dup <=
- until
- drop
-;
-
-: tohexstr ( num buf -- buf len )
- base @ hex -rot numtostr rot base !
-;
-
-: toudecstr ( num buf -- buf len )
- base @ decimal -rot numtostr rot base !
-;
-
-: todecstr ( num buf -- buf len )
- over 0< if
- swap negate over ascii - over c! 1+
- ( buf num buf+1 )
- toudecstr 1+ nip
- else
- toudecstr
- then
-;
-
-
-\ -----------------------------------------------------
-\ string to number conversion
-\ -----------------------------------------------------
-
-: parse-hex ( str len -- value )
- base @ hex -rot $number if 0 then swap base !
-;
-
-
-\ -----------------------------------------------------
-\ miscellaneous functions
-\ -----------------------------------------------------
-
-: rot13 ( c - c )
- dup upc [char] A [char] M between if d# 13 + exit then
- dup upc [char] N [char] Z between if d# 13 - then
-;
-
-: rot13-str ( str len -- newstr len )
- strdup 2dup bounds ?do i c@ rot13 i c! loop
-;