home *** CD-ROM | disk | FTP | other *** search
- /***********************************************************************/
- /***********************************************************************/
- /* */
- /* ╘HIS PROGRAM IS COPYRIGHT 1986 BY ┴LAN ┘ORINKS. ╔T MAY BE FREELY */
- /* DISTRIBUTED FOR NON COMMERCIAL USAGE IF THIS COPYRIGHT NOTICE IS */
- /* LEFT INTACT. ├OMMERCIAL USAGE OF THIS PROGRAM IS EXPLICITLY */
- /* FORBIDDEN WITHOUT THE WRITTEN PERMISSION OF THE AUTHOR. */
- /* */
- /***********************************************************************/
- /***********************************************************************/
-
-
- /* CDT VERSION 1.0 PART 12 OF 15 ╩ULY 25, 1986 */
-
-
-
- /* FIND - SEARCH FOR BYTE STRING IN GIVEN RANGE OF MEMEORY */
-
-
- #INCLUDE <STDIO.H>
- #INCLUDE "DBUG.H"
-
-
- #IFDEF ├╧╠80 /* DEFINE THE NUMBER OF ADDRESS FIELDS TO PRINT PER LINE */
- #DEFINE ┴═┴╪ 16
- #ELSE
- #DEFINE ┴═┴╪ 8
- #ENDIF
-
-
- #IFDEF ├64
- /* BYTE IN MEMORY */
-
- #DEFINE ═┼═┬┘╘┼ (╨┼┼╦( ╙┴──╥(FND) ))
- #ELSE
-
- /* BYTE IN MEMORY */
-
- #DEFINE ═┼═┬┘╘┼ (PEEK( ┬┴╬╦(FND), ╙┴──╥(FND) ))
- #ENDIF
-
- /* BYTE IN STRING INDEXED BY I */
-
- #DEFINE ╙╘╥┬┘╘┼ *(╙╘╥╔╬╟(FND) + I)
-
-
-
- VOID
- FIND()
- █
- AUTO ╒╔╬╘ FADDR ; /* ADDRESS OF STRING FOUND */
- AUTO INT LEN, /* LENGTH OF STRING TO SEARCH FOR */
- COUNT = 0, /* COUNT OF ADDRESSES OUTPUT PER LINE */
- LNCNT = 0, /* LINE COUNTER */
- I = 0, /* INDEX INTO STRING */
- C ;
- EXTERN INT PAGE ;
- EXTERN VOID PAGER() ;
-
- LEN = STRLEN( ╙╘╥╔╬╟(FND) ) ;
-
- WHILE( (╒╔╬╘)(╙┴──╥(FND)) < (╒╔╬╘)┼┴──╥(FND) )
- █
- IF( ═┼═┬┘╘┼ == ╙╘╥┬┘╘┼ )
- █
- IF( I++ == 0 ) /* IF FIRST CHAR OF STRING FOUND REMEMBER WHERE */
- FADDR = (╒╔╬╘)╙┴──╥(FND) ;
- ╙┴──╥(FND)++ ;
- IF( I == LEN ) /* ENTIRE STRING FOUND */
- █
- I = 0 ; /* GET READY TO LOOK FOR STRING AGAIN */
- PRINTF("%04X ",FADDR) ; /* OUTPUT ADDRESS */
- IF ( ++COUNT == ┴═┴╪ ) /* MAKE SURE ADDRESSES FIT ON LINE */
- █
- COUNT = 0 ;
- PRINTF("\N") ;
- /* TAKE CARE OF PAGEING IF NECESSARY */
- IF ( PAGE == ╘╥╒┼ )
- PAGER() ;
- ▌
- ▌
- ▌
- ELSE IF( I == 0 ) /* HAVEN'T FOUND FIRST CHARACTER YET */
- ╙┴──╥(FND)++ ;
- ELSE
- I = 0 ; /* LOOK FOR FIRST CHAR AT CURRENT ADDRESS */
- ▌
- PRINTF("\N") ;
-
- ▌
-