$CPU 8086 ' make compatible with XT systems $LIB ALL OFF ' turn off all PowerBASIC libraries $ERROR ALL OFF ' turn off all PowerBASIC error checking $OPTIMIZE SIZE ' optimize for smaller code $COMPILE UNIT ' compile to a UNIT (.PBU) '$COMPILE EXE ' compile to a UNIT (.PBU) DEFINT A-Z ' Required for all numeric functions, forces PB to not ' include floating point in UNIT (makes it smaller) '/*------------------------------------------------------------------*/ $CODE SEG "MLIB5" '/*------------------------------------------------------------------*/ ; ISISBN(STRING$) ; Returns 1 if STRING$ contains a valid ISBN number. ; Returns 0 if not. ; EXAMPLE: T = ISISBN("0137790678") 1 '/*------------------------------------------------------------------*/ FUNCTION ISISBN(BYVAL A$) PUBLIC AS INTEGER FOR X = 1 TO LEN(A$) IF MID$(A$,X,1) >="0" AND MID$(A$,X,1) <="9" THEN B$=B$+MID$(A$,X,1) NEXT X IF RIGHT$(A$,1) = "X" OR RIGHT$(A$,1) = "x" THEN B$=B$ + "X" FOR X= 1 TO LEN(B$)-1 CS = CS + VAL(MID$(B$,X,1)) * X NEXT X IF RIGHT$(B$,1) = "X" THEN M = 10 ELSE M = VAL(RIGHT$(B$,1)) IF CS MOD 11 = M THEN FUNCTION = 1 ELSE FUNCTION = 0 END FUNCTION '/*------------------------------------------------------------------*/ ' $INCLUDE "C:\CODE\MLIB\MLIB.INC" ' INPUT A$ ' SAY 10,1,STR$(ISISBN(A$)),31 ' Y$ = GETKEY