1 REM Ins{nd av: Staffan Lantz <6650> 1987-10-11 17.47.06 (WRITE) ;Program: HITTA Datum:871008 Version 1.0 ; HL skall peka p} texten, DE skall peka p} ett ord, BC=s|k from position i HL. ; Programmet s|ker ord i text. Satt Z-flag=ord hittat. ; Texten och ordet skall b}da avslutas med CR. TITLE HITTA ORG 64000 ; VARIABLER OCH KONSTANTER L[NGD EQU 80 ORD DM "hitta",13 INTEXT DS L[NGD ; HUVUDPROGRAM START LD HL,INTEXT LD BC,L[NGD CALL 5 ;L{s in en textrad. LD HL,INTEXT ;Hl pekar p} texten. LD DE,ORD ;De pekar p} ordet som skall letas upp. LD BC,0 ;S|k fr}n 1:a position (0,1,2,...) CALL INSTR ;S|k. BC blir den position d{r ordet hittas. INC BC LD H,B LD L,C RET Z ;Om ordet hittat hl<>0. LD HL,0 ;Ordet ej hittat hl=0. RET ;-----------------------------------------m------------------------------------- INSTR ADD HL,BC ;S{tt r{tt startkolumn CALL S\KALLA RET S\KALLA PUSH HL PUSH DE PUSH BC CALL STRSCN POP BC POP DE POP HL RET Z ;Zero=Ord hittat. INC HL INC BC ;\ka pekarna LD A,13 CP (HL) JR NZ,S\KALLA CP A ;Non Zero=Ord ej hittat. RET ;------------------------------------------------------------------------------- STRSCN LD A,(DE) ;S|krutin: J{mf|r ordet endast med 'f|rsta' kolumn. CP 13 RET Z ;Samma, om CR {r ordet hittat. CP (HL) RET NZ ;Ej samma, ordet ej hittat i den h{r kolumnen. INC HL INC DE ;\ka pekarna. INC BC JR STRSCN END START