File: SZEIL.MA of Tape: Various/Decus/decus-2
(Source file text)
.TITLE L I N K - L I B R A R Y .SBTTL SZEIL :EINLESEN EINES KOMMANDOS .INCLUDE SYS:MACLIB.MA /******* SZEIL ******** /15.09.81 BR,RMO,1.7.83 VH /(L,AC)=?,? /CIF SZEIL /JMS SZEIL /FELD DES BUFFERS /ADRESSE DES BUFFERS /1.RUECKSPRUNG FALLS NUR CR,ESCAPE,RUB,SPACE ODER CONTROL-ZEICHEN (L,A)=0,0 /2.RUECKSPRUNG FALLS EIN STRING MIT RETURN ODER ESCAPE ABGESCHLOSEN (L,A)=0,0 /*************************** /UNTERPROGRAMM ZUM EINLESEN EINER ZEILE (MAX 50 ZEICHEN) /PARAMETER HINTER DEM AUFRUF GIBT AN, WO DER TEXT AB- /GELEGT WERDEN SOLL (FELD + ADRESSE) /JEDES EINGEGEBENE ZEICHEN WIRD ABGESPEICHERT OPEN "SZEIL","F" .ENTRY SZEIL DEFMER ATEMP$,ZEICH$,BUFFZ$,BUFF1$,TEMP1$ SZEIL, OPNSUB RT:ZEILE0,AC:ATEMP$,UM1$,BUFF1$ RESMER CAL:BUFFZ$ DCAADD UM2$,AC+UM1$ DCAADD UM3$,AC+UM1$ ZEIL1$: LIESTT DCA ZEICH$ JMX AC+BUFFZ$,NE:ZEIL2$ /1.ZEICHEN ? VERGLE ZEICH$,<"!>,LT:ZEIL9$ /1.ZEICHEN = CONTROL,SPACE ODER CR VERGLE ZEICH$,(RUB),NE:ZEIL6$ /1.ZEICHEN KEIN RUB ZEIL9$: TAD ZEICH$ UM1$: V /1.ZEICHEN = CONTROL,SPACE,CR ODER RUB DCA I BUFF1$ CDF .FLD JMP ZEILE0 /------------------------------------------------------------- ZEIL2$: VERGLE ZEICH$,(RUB),NE:ZEIL5$ DEC BUFFZ$ /ZEICHEN LOESCHEN DCAADD TEMP1$,AC+BUFFZ$,BUFF1$ UM2$: V TAD I TEMP1$ CDF .FLD VERGLE AC,(SPACE),LT:ZEIL1$ ZEIL7$: RUBOUT JMP ZEIL1$ /---------------------------------------------------------- ZEIL5$: VERGLE AC+BUFFZ$,(49.),LT:ZEIL6$ VERGLE AC+ZEICH$,(SPACE),EQ:ZEIL7$,GT:ZEIL7$,LT:ZEIL8$ ZEIL6$: DCAADD TEMP1$,AC+BUFFZ$,BUFF1$ TAD ZEICH$ UM3$: V DCA I TEMP1$ /ZEICHEN IN DEN STRINGBUFFER ABLEGEN CDF .FLD INC BUFFZ$ ZEIL8$: TAD ZEICH$ /ABSCHLUSSZEICHEN EINGEGEBEN ? VERZWG <CR> ,<ESC> SPRUNG ZEILE4 ,ZEILE4 CAL JMP ZEIL1$ /--------------------------------------------------------------- ZEILE4: INC SZEIL,0 CAL ZEILE0: V JMP I SZEIL CLOSE "SZEIL" ENDPR