File: SSTRBE.MA of Tape: Various/Decus/decus-2
(Source file text)
.TITLE L I N K - L I B R A R Y .SBTTL STRBEW:STRINGBEWERTUNG .INCLUDE SYS:MACLIB.MA OPEN "STRBEW","F" /****** STRBEW ****** /15-3-83 VH /(L,AC)=?,? /CALL STRBEW /FELD STRINGDEFINITION /ADRESSE -"- /1.RUECKSPRUNG: STRING NICHT GEFUNDEN /2. -"- : STRING GEFUNDEN /(L,AC)=?,STRINGNUMMER /******************** /DAS UNTERPROGRAMM STRBEW SUCHT IN DER STRINGDEFINITIONSTABELLE EINEN /BESTIMMTEN STRING UND GIBT DESSEN STRINGNUMMER IM AKKU ZURUECK /MIT DEN MACROS OPSTR,TABERZ UND CLOSTR MUESSEN DIE STRINGDEFINITIONSTABELLE /UND DIE ENTSPRECHENDE SUBROUTINENTABELLE ERTSELLT SEIN,DAMIT IN DIESEN DER /STRING GESUCHT WERDEN KANN .ENTRY STRBEW .EXTERNAL STRBUF DEFMER STELLE,STRLG,ZEICHN,STRNUM,STRANF,STRDEF,STRIN DEFMER BUCH$,PNTR1$ STRBEW, OPNSUB RT:EXIT$,STRFE,STRDEF RESMER CLA:STRNUM DCAADD ZEICHN,AC+STRDEF DCAADD STRFE$,AC+STRFE TAELS AC,STRBUF,(6) STRFE: V TAD I ZEICHN CDF .FLD DCA STRLG /STRINGLAENGE TAD STRLG SNA JMP NOSTR$ /TABELLENENDE SNA SPA JMP STRB1$ INC STRNUM,0 /STRLG > 0 JMP STRB2$ STRB1$: CMA IAC /STRLG < 0 DCA STRLG STRB2$: INC ZEICHN,0 DCAADD STRANF,ZEICHN DCA STELLE /STRING VERGLEICHEN STRB3$: TAELL AC,STRBUF,STELLE /AC:=ZEICHEN AUS STRINGBUFFER SNA JMP STRGE$ /ZEICHEN=0 DCA BUCH$ STRFE$: V TAD I ZEICHN /BUCHSTABE VON STRING-DEF.-TABELLE CDF .FLD CMA IAC TAD BUCH$ /BEIDE BUCHSTABEN GLEICH ? SZA CLA JMP STWEI$ /NEIN INC STELLE,0 INC ZEICHN,0 JMP STRB3$ /NAECHSTEN BUCHSTABEN VERGLEICHEN STRGE$: VERGLE STRLG,STELLE,EQ:STGEF$ STWEI$: DCAADD ZEICHN,STRANF,STRLG /NAECHSTE STRINGDEFINITION JMP STRFE STGEF$: CLA /STRING GEFUNDEN DCA PNTR1$ /STRINGTABELLE AUF 0 SETZEN STRG1$: TAELS AC,STRBUF,PNTR1$ INC PNTR1$,0 VERGLE PNTR1$,(7.),LT:STRG1$ INC STRBEW,0 TAD STRNUM SKP NOSTR$: CLA /STRING NICHT GEFUNDEN EXIT$: V JMP I STRBEW /RUECKSPRUNG CLOSE "STRBEW" ENDPR