2 ! +++++++++++++++++++++++++++++++++++ 3 ! Program .... VARLIST.800 4 ! Utg}va 1.0 1983-05-18 5 ! av (c) Bo Kullmar 9 ! Ins{nt av Bo Kullmar, 1789. 10 ! Se filen VARLIST.REM 11 ! +++++++++++++++++++++++++++++++++++ 1000 EXTEND : FLOAT : Z999%=FNVarlist% 1010 ! ***OBS RAD 65177 [R TEMPOR[RT UPPDELAD I RAD 65177 OCH 65178 ******* 65000 DEF FNStart% LOCAL Prn$=12 65003 DIM Max%(20%),Min%(20%) 65006 IF PEEK(65310%)=4% THEN Prec999$='SINGLE' ELSE Prec999$='DOUBLE' 65009 ! *** OBS Typ {r +1 if|rh}llandet till inneh}llet i typbyten *** 65012 ! *** f|r att programmet skall kunna k|ras med OPTION BASE 1 *** 65015 Typ999$(1%)='.' : Typ999$(2%)='' 65018 Typ999$(3%)='$' : Typ999$(5%)='.(...)' 65021 Typ999$(6%)='%(...)' : Typ999$(7%)='$(...)' 65024 ; CHR$(12%) 'Printning av programs variabler' 65027 ; : ; 65030 INPUT 'Programnamn? 'Prn$ 65033 PREPARE 'PR:VSA36C72.55' AS FILE 9% 65036 ; #9%,'GLOBALA VARIABLER F\R ' Prn$ ' I INTEGERMOD ' TIME$ : ; #9% 65039 ; #9%,'Flyttalsprecision ' Prec999$ ' OPTION BASE '; 65042 IF PEEK(65314%)=0% THEN ; #9%,'0' ELSE ; #9%,'1' 65045 ; #9%,'F|r str{ngar l{ngre {n 49 tecken anges endast de f|rsta 49 tecknen av v{rdet!' 65048 ; #9% 65051 RETURN PEEK2(SYS(12%)) 65054 FNEND 65057 DEF FNSlut% 65060 CLOSE 9% 65063 END 65066 FNEND 65069 DEF FNVar%(L%) LOCAL L{nk%,Typebyte%,Typ%,Bokstav%,Suffix%,Z% 65072 L{nk%=L% 65075 Typebyte%=PEEK(L{nk%+2%) 65078 Typ%=(Typebyte% AND 7%)+1% 65081 Bokstav%=PEEK(L{nk%+3%) 65084 Suffix%=(Typebyte% AND 248%)/8% 65087 Var999$='' 65090 IF Bokstav%<32% THEN Z999$=FNKort$(Typ%,Bokstav%,Suffix%) ELSE Z999$=FNL}ng$(Typ%,Bokstav%,Suffix%) 65093 IF Var999$='Typ999$(...)' OR Var999$='Z999' OR Var999$='Var999$' OR Var999$='Z999$' THEN RETURN PEEK2(L{nk%) 65096 IF Var999$='Prec999$' OR Var999$='Max%(...)' OR Var999$='Min%(...)' THEN RETURN PEEK2(L{nk%) 65099 ; #9%,Var999$; 65102 Z%=FNV{rde%(L{nk%,Typ%) 65105 RETURN PEEK2(L{nk%) 65108 FNEND 65111 DEF FNKort$(Typ%,Bokstav%,Suffix%) LOCAL Bokstav$=1,Suffix$=1 65114 Bokstav$=CHR$(Bokstav%+64%) 65117 IF Suffix%=15% THEN Suffix$='' ELSE Suffix$=NUM$(Suffix%) 65120 Var999$=Bokstav$+Suffix$+Typ999$(Typ%) 65123 RETURN Var999$ 65126 FNEND 65129 DEF FNL}ng$(Typ%,Bok%,Suffix%) LOCAL Bokstav%,Varoffset%,Eofa%,Negoffset%,Liststart%,Varpos% 65132 Bokstav%=Bok% 65135 Varoffset%=(Bokstav%-32%)*32%+Suffix% 65138 Eofa%=PEEK2(SYS(10%)+8%) 65141 Negoffset%=PEEK2(Eofa%-1%) 65144 Liststart%=Eofa%+Negoffset%+4% 65147 Varpos%=Liststart%+Varoffset% 65150 Bokstav%=PEEK(Varpos%) 65153 WHILE Bokstav%<>254% AND Bokstav%<>255% 65156 Var999$=Var999$+CHR$(Bokstav%) 65159 Varpos%=Varpos%+1% 65162 Bokstav%=PEEK(Varpos%) 65165 WEND 65168 Var999$=Var999$+Typ999$(Typ%) 65171 RETURN Var999$ 65174 FNEND 65177 DEF FNV{rde%(L{nk%,Typ%) LOCAL Ej$=24,I%,V{rde$=1000,V{rde,V{rde%,Diml{ngd% 65178 ! ,Textpekare%,Aktl{ngd%,Ai%,Ob%,Minus% 65180 Ej$='DIM kan ej anges!' 65183 I%=4% 65186 V{rde$='' 65189 WHILE Typ%=1% 65192 WHILE Prec999$='SINGLE' AND I%<8% 65195 V{rde$=V{rde$+CHR$(PEEK(L{nk%+I%)) 65198 I%=I%+1% 65201 WEND 65204 WHILE Prec999$='DOUBLE' AND I%<12% 65207 V{rde$=V{rde$+CHR$(PEEK(L{nk%+I%)) 65210 I%=I%+1% 65213 WEND 65216 V{rde=CVT$F(V{rde$) 65219 GOTO 65225 65222 WEND 65225 WHILE Typ%=2% 65228 V{rde%=PEEK2(L{nk%+4%) 65231 GOTO 65324 65234 WEND 65237 WHILE Typ%=3% 65240 Diml{ngd%=PEEK2(L{nk%+4%) 65243 Textpekare%=PEEK2(L{nk%+6%) 65246 Aktl{ngd%=PEEK2(L{nk%+8%) 65249 V{rde$='' 65252 I%=Textpekare% 65255 WHILE I%49% ; #9%,TAB(21%) 'V{rde: ' LEFT$(V{rde$,49%) 65339 IF Typ%=5% OR Typ%=6% OR Typ%=7% THEN ; #9%,TAB(21%) V{rde$ 65342 RETURN 0% 65345 FNEND 65348 DEF FNVarlist% LOCAL L{nk% 65351 L{nk%=FNStart% 65354 WHILE L{nk% 65357 L{nk%=FNVar%(L{nk%) 65360 WEND 65363 L{nk%=FNSlut% 65366 FNEND