Rev 92 | Blame | Compare with Previous | Last modification | View Log | Download
strlenEXPORT strlenstrlen.A.=$+1EXPORT strlen.A.ld hl,0xor ald b,ald c,acpir ;terminator will be found certainly; len=0 gives bc=-1 etc downld hl,-1;or asbc hl,bcretstrcopyEXPORT strcopystrcopy.A.=$+1EXPORT strcopy.A.ld hl,0 ;fromstrcopy.B.=$+1EXPORT strcopy.B.ld bc,0 ;lenstrcopy.C.=$+1EXPORT strcopy.C.ld de,0 ;topush bcinc bc ;copy with terminatorldirpop hl ;resultretmemcopyEXPORT memcopymemcopy.A.=$+1EXPORT memcopy.A.ld hl,0 ;frommemcopy.B.=$+1EXPORT memcopy.B.ld bc,0 ;lenmemcopy.C.=$+1EXPORT memcopy.C.ld de,0 ;toldirretmemcopybackEXPORT memcopybackmemcopyback.A.=$+1EXPORT memcopyback.A.ld hl,0 ;frommemcopyback.B.=$+1EXPORT memcopyback.B.ld bc,0 ;lenmemcopyback.C.=$+1EXPORT memcopyback.C.ld de,0 ;to;lddrdb 0xed,0xb8retstrjoineolEXPORT strjoineolstrjoineol.D.=$+1EXPORT strjoineol.D.ld a,0jp strjoingo.strjoinEXPORT strjoinxor astrjoingo.;terminator is not copiedstrjoin.C.=$+1EXPORT strjoin.C.strjoineol.C.=$+1EXPORT strjoineol.C.ld hl,0 ;fromld bc,_STRMAX+1;cpirdb 0xed,0xb1strjoin.B.=$+1EXPORT strjoin.B.strjoineol.B.=$+1EXPORT strjoineol.B.ld de,0 ;tolenld a,e;add a,_STRMAXsub c ;fromlen = _STRMAX. - bc ;sumlen = fromlen + tolen;cp _STRMAX;jr c,$+4;ld a,_STRMAX ;IF (sumlen > _STRMAX) sumlen = _STRMAX;jp m,$+4xor aadd a,_STRMAXsub e ;fromlen = sumlen - tolen;ld c,a ;fromlen ;ьюцхЄ с√Є№ 0!!!inc c ;яЁюЄшт 0add a,e ;a = sumlenstrjoin.A.=$+1EXPORT strjoin.A.strjoineol.A.=$+1EXPORT strjoineol.A.ld hl,0 ;toadd hl,de ;to = to + tolenex de,hl ;de = told hl,[strjoin.C.] ;fromldirld l,a ;sumlenld h,b;0retstraddEXPORT straddstradd.B.=$+1EXPORT stradd.B.ld hl,0 ;lenld a,lcp _STRMAXret nc ;hl = lenex de,hlstradd.A.=$+1EXPORT stradd.A.ld hl,0 ;sadd hl,destradd.C.=$+1EXPORT stradd.C.ld [hl],0 ;cex de,hlinc hl ;lenretstrcpEXPORT strcpstrcp.A.=$+1EXPORT strcp.A.ld hl,0 ;s1strcp.B.=$+1EXPORT strcp.B.ld de,0 ;s2strcp0.ld a,[de] ;s2cp [hl] ;s1jr nz,strcpbad.inc hlinc deor ajp nz,strcp0.dec a ;TRUEretstrcpbad.xor a ;FALSEret;FUNC UINT hash(PBYTE pstr)hashEXPORT hashhash.A.=$+1EXPORT hash.A.ld de,0xor ald h,ald l,ahash0.add hl,hladd a,lld l,ald a,[de]inc deor ajp nz,hash0.ret