home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Loadstar 2
/
002.d81
/
instring.s
< prev
next >
Wrap
Text File
|
2022-08-26
|
1KB
|
101 lines
;word parser
* = $bffe
.word $c000
;
ptset=44446
ptr1=41
ptr2=254
ad1=39
ad2=252
int1=32
lensub=38
lenmain=251
varpt=71
;
;*********************************
;* sys(xx)a$b$m% *
;* finds where a$ occurs in b$ *
;* *
;* m%=0 if not found *
;* m%= starting byte *
;* if found *
;* *
;*********************************
;
jsr ptset
lda $47 : sta ptr1
lda $48 : sta ptr1+1
;
jsr ptset
lda $47 : sta ptr2
lda $48 : sta ptr2+1
;
jsr ptset
lda $47 : sta int1
lda $48 : sta int1+1
;
ldx #00 : ldy #$00 : lda #$00
ylup
lda (ptr1),y : sta lensub,x
lda (ptr2),y : sta lenmain,x
inx : iny
cpy #3 : bne ylup
;
lda #$00
sta subptr
sta mainptr
lda lenmain
sbc lensub
bcc nomatch
sta difct
;
findit
ldy subptr
lda (ad1),y
sta subchar
ldy mainptr
lda (ad2),y
cmp subchar
bne diffchars
inc subptr
lda lensub
cmp subptr
beq matchexit
inc mainptr
clc
bcc findit
diffchars
inc mainptr
backup
lda subptr
beq okzro
dec subptr
dec mainptr
clc
bcc backup
okzro
dec difct
lda #$ff
cmp difct
bne findit
nomatch
lda #$00
sta lensub
beq exxit
matchexit
lda mainptr
sbc lensub
sta lensub
inc lensub
inc lensub
exxit
ldy #$01
lda lensub
sta (int1),y
lda #$00
tay
sta (int1),y
rts
rts
dim subptr , mainptr , difct , d , d2 , subchar