|
|
Line 1: |
Line 1: |
− | [[Category:84PCE:OS_Information]]
| |
| | | |
− | <pre>;--------------------------------------------
| |
− | ; fdetect
| |
− | ; detects appvars, prot progs, and
| |
− | ; progs given a 0-terminated string
| |
− | ; pointed to by ix.
| |
− | ;--------------------------------------------
| |
− | ; INPUTS:
| |
− | ; hl->place to start searching
| |
− | ; ix->string to find
| |
− | ;
| |
− | ; OUTPUTS:
| |
− | ; hl->place stopped searching
| |
− | ; de->file data after string
| |
− | ; bc=file size after string
| |
− | ; z flag set if found, nz if not found
| |
− | ;--------------------------------------------
| |
− | fdetect:
| |
− | ld de,(ptemp)
| |
− | or a,a
| |
− | sbc hl,de
| |
− | add hl,de
| |
− | ld a,(hl)
| |
− | jr nz,fcontinue
| |
− | inc a
| |
− | ret
| |
− | fcontinue:
| |
− | push hl
| |
− | cp appvarobj
| |
− | jr z,fgoodtype
| |
− | cp protprogobj
| |
− | jr z,fgoodtype
| |
− | cp progobj
| |
− | jr nz,fskip
| |
− | fgoodtype:
| |
− | dec hl
| |
− | dec hl
| |
− | dec hl
| |
− | ld e, (hl)
| |
− | dec hl
| |
− | ld d,(hl)
| |
− | dec hl
| |
− | ld a,(hl)
| |
− | call _SetDEUtoA
| |
− | push de
| |
− | pop hl
| |
− | cp 0D0h
| |
− | jr nc,finRAM
| |
− | push ix
| |
− | push de
| |
− | push hl
| |
− | pop ix
| |
− | ld a,10
| |
− | add a,(ix+9)
| |
− | ld de,0
| |
− | ld e,a
| |
− | add hl,de
| |
− | ex (sp),hl
| |
− | add hl,de
| |
− | pop de
| |
− | ex de,hl
| |
− | pop ix
| |
− | finRAM:
| |
− | inc de
| |
− | inc de
| |
− | ld bc,0
| |
− | ld c,(hl)
| |
− | inc hl
| |
− | ld b,(hl)
| |
− | inc hl ; hl -> data
| |
− | push bc ; bc = size
| |
− | push ix
| |
− | pop bc
| |
− | fchkstr:
| |
− | ld a,(bc)
| |
− | or a
| |
− | jr z,ffound
| |
− | cp (hl)
| |
− | inc bc
| |
− | inc de
| |
− | inc hl
| |
− | jr z,fchkstr
| |
− | pop bc
| |
− | fskip:
| |
− | pop hl
| |
− | call fbypassname
| |
− | jr fdetect
| |
− | ffound:
| |
− | push bc
| |
− | pop hl
| |
− | push ix
| |
− | pop bc
| |
− | or a
| |
− | sbc hl,bc
| |
− | push hl
| |
− | pop bc
| |
− | pop hl ; size
| |
− | or a
| |
− | sbc hl,bc
| |
− | push hl
| |
− | pop bc
| |
− | pop hl ; current search location
| |
− | push bc
| |
− | call fbypassname
| |
− | pop bc
| |
− | xor a
| |
− | ret
| |
− | fbypassname:
| |
− | ld bc,-6
| |
− | add hl,bc
| |
− | ld b,(hl)
| |
− | dec hl
| |
− | fbypassnameloop:
| |
− | dec hl
| |
− | djnz fbypassnameloop
| |
− | ret</pre>
| |
Latest revision as of 12:06, 26 May 2015
This category currently contains no pages or media.