1 REM Ins{nd av Johan Olofsson <5809> 1987-08-01 15.14.00 (DUMP) 10 ! -------------------------------------------------- 20 ! CROSSREF Ver 2.00 - Skapar en korsreferens lista 30 ! F|r ABC800-BASIC, med diskett-station 40 ! F}r kopieras fritt endast i icke-komersiella syften. 50 ! 60 ! Ver 1.00 87-07-18 Av <5809> Johan Olofsson 61 ! Ver 1.01 87-07-18 <5809> n}gra sm} buggar 62 ! Ver 1.02 87-07-31 <5809> radnummer detekteras b{ttre 63 ! Ver 2.00 87-08-01 <5809> Pgm delat i CHAIN-delar 70 ! -------------------------------------------------- 99 ! 100 INTEGER : EXTEND 101 ! 102 COMMON Sep$=18,E$=160,G$=30,Text$(0:6)=20,L$=1,W$=1,R$=1 103 COMMON Rub$=80,Fil$=16,Tmpfil$=16,Pr$=16,Order$=7 104 COMMON Typstring,Typvar,Typlocal,Typfn,Typbas,Typtal,Typrad 106 COMMON Infil,Tmp,Utfil,Bas,Order,Flaglist,Flagkill,K9,T0,Utfilpos. 110 Rub$='K O R S R E F E R E N S f|r BAS - program' 112 ! 114 Sep$='=<>/*^+-#().;,' ! Tecken som inte kan f|reg} eller f|lja radnummer! 116 Sep$=Sep$+' :"'+"'" ! Tecken som kan skilja variabler mm }t 118 ! 120 G$=' GOTO GOSUB IF THEN ELSE ' ! Basic-ord som kan f|reg} radnr-ref 122 ! 124 DATA TO,NEXT,GET,IF,THEN,ELSE,PRINT,RETURN,WHILE,WEND,ASC,CHR$,INSTR,LEFT$ 126 DATA FILE,AS,DEF,FNEND,LEN,NUM$,RIGHT$,SPACE$,STRING$,VAL,NOT,AND,OR,XOR 128 ! BASIC-ord som vi inte |nskar listade !!! 130 ! 132 ! Bas=1 ! Om Bas=0 s} f}s {ven en (os{ker) lista |ver radnr-referenser 134 ! 135 ! Flagkill=-1 ! Om Tmp-filen ska f|rst|ras n{r programmet {r f{rdigt 136 Tmpfil$='MEM:0' ! - O B S - kan {ndras till n}got annat l{mpligt 137 ON ERROR GOTO 138 : OPEN Tmpfil$ AS FILE 99 : WHILE 0 ! don't prepare 138 ON ERROR GOTO : PREPARE Tmpfil$ AS FILE 99 : CLOSE 99 : WEND ! - OK 139 ON ERROR GOTO 140 ! 150 ; : ; Rub$ 155 ; 160 Z=FNInit 170 INPUT 'IN-Fil: 'Fil$ 180 OPEN Fil$ AS FILE Infil 190 Rub$=Rub$+'met "'+Fil$+'"' 210 INPUT 'UT-Fil: 'Pr$ : IF Pr$='' THEN Pr$='con:' 221 Pr$=FNCaps$(Pr$) 225 PREPARE Pr$ AS FILE Utfil : CLOSE Utfil ! - bara test ! 230 ! 240 ! Z=FNInit 250 WHILE -1 260 ; : ; 'Ange med EN siffra hur mycket som skall listas!' : ; 270 FOR X=Bas TO Typstring : ; X Text$(X) : NEXT X 280 ON ERROR GOTO 260 290 ; : INPUT 'Ditt val: 'Order 300 IF Order>Typstring OR OrderASCII('N') 330 ON ERROR GOTO 340 ! 350 CHAIN 'Cref2' 360 ! 410 ! ------------------------------------------------------------------------ 420 ! 500 DEF FNInit LOCAL X$=10 502 DIM Fil$=16,Pr$=16,L$=1,W$=1,R$=1 503 L$='&' : W$='' : R$=' ' : Infil=1 : Utfil=2 : Tmp=3 504 Typvar=1 : Typlocal=Typvar+1 : Typfn=Typlocal+1 : Typbas=Typfn+1 506 Typtal=Typbas+1 : Typstring=Typtal+1 508 DIM Text$(0:Typstring)=20 510 Text$(0)='rad nummer' 512 Text$(Typvar)='GLOBALA variabler' 514 Text$(Typlocal)='LOCAL och parametrar' 516 Text$(Typfn)='Program-funktioner' 518 Text$(Typbas)='vissa BASIC-ord' 520 Text$(Typtal)='tal-konstanter' 522 Text$(Typstring)='str{ng-konstanter' 524 DIM E$=160 : ON ERROR GOTO 528 526 WHILE -1 : READ X$ : E$=E$+W$+X$ : WEND 528 E$=E$+W$ 530 ! E$ {r str{ngen med BASIC-ord som inte ska noteras 536 RETURN 0 538 FNEND 540 ! 3600 DEF FNCaps$(Rad$) LOCAL Retur$=80,Ptr 3610 WHILE Ptr'_' 3640 Retur$=Retur$+CHR$(95 AND ASCII(RIGHT$(Rad$,Ptr))) 3650 IF 0 WEND : Retur$=Retur$+MID$(Rad$,Ptr,1) 3660 WEND 3670 RETURN Retur$ 3680 FNEND 3690 !