1 REM Ins{nd av Kristoffer Eriksson <5357> 1987-04-03 19.50.44 (KERMIT)
10 ! save AVCROSS, 1987-04-01 22.10
20 ! +---------------------------------------------------+
30 ! ! AVCROSS Ver 1.2 - Korsreferensprogram till AVASS !
40 ! ! F|r ABC800-serien (dvs DBASIC-II) !
50 ! ! Startas av AVASS med CHAIN. !
60 ! ! Av Kristoffer Eriksson "SKE" ABC <5357>, 1984-1987!
70 ! ! F}r fritt kopieras f|r icke-kommersiella syften !
80 ! +---------------------------------------------------+
90 ! OBS: Skrivarutskriften {r inst{lld f|r EPSON med smal stil. [ndra om du
100 ! inte har en EPSON-kompatibel skrivare, eller inte vill ha smal stil.
110 !
120 !
130 ! Ver-/-Datum----/-Sign-/-Kommentar-----
140 ! 1.0 / 84-11-02 / SKE /
150 ! 1.2 / 87-03-28 / SKE / Moderniserat, snabbare sortering, AVASS 5.1
160 !
170 !
180 INTEGER : EXTEND : ! NO RESUME
190 ; CHR$(12) "Korsreferenstabulering Ver 1.2 f|r AVASS ver 5.1" : ;
200 !
210 DIM Dig$=16,Diglen$=34,Prfil$=16,S$=5,X$=5
220 Dig$="0123456789ABCDEF" : Diglen$=" 008@6;48474736363635353535353524"
230 Basa=10 ! Talsystem f|r adresser
240 Prfil$="PR:VSA56"
250 DIM Prinit$=20 : Prinit$=CHR$(15) ! Kod f|r smal stil p} skrivare
260 DIM Prvmrg$=20 : Prvmarg$=SPACE$(10) ! Inleder varje rad
270 Prmaxk=11 ! Max kolumner a' 10 tecken p} skrivare, 11 f|r 132-teckens rader
280 !
290 Maxr=(SYS(4)-1500)/5
300 DIM Ref$=Maxr*5 ! H{r l{ses referensfilen in.
310 POKE VAROOT(Ref$)+4,Maxr*5,SWAP%(Maxr*5) ! S{tt l{ngd till max
320 !
330 !
340 ! --- \ppna adressfil --------------
350 ON ERROR GOTO 430 : OPEN "AVCROSS.TMP" AS FILE 2
360 GET #2 P$ COUNT 2
370 Basa=CVT$%(P$)
380 GET #2 F$ COUNT 16
390 IF F$=SPACE$(16) THEN F$="ABC-PROM/RAM"
400 ON ERROR GOTO
410 !
420 WHILE 0
430 IF ERRCODE<>21 THEN ; "Felkod" ERRCODE "p} AVCROSS.TMP" : STOP
440 ; "Kan inte hitta AVCROSS.TMP som skapas n{r man beg{r korsreferens i AVASS."
450 END
460 WEND
470 !
480 ! --- St{ll fr}gor -----------------
490 Basa=FNFr}gabas("Talsystem f|r adresser",Basa)
500 Jr=FNJnv{lj("Ska JR tas med","J")=1
510 Jrt=0
520 IF Jr Jrt=FNJnv{lj("Ska JR skrivas ut i en s{rskild tabell","J")=1 AND 1
530 Pr=FNJnv{lj("Utskrift p} skrivare","N")
540 IF Pr=1 THEN Fpr=1 : OPEN Prfil$ AS FILE Fpr : ; #Fpr Prinit$ : Maxk=Prmaxk
550 IF Pr=2 THEN Fpr=0 : Maxk=7
560 !
570 ! --- Bearbetningsloop -------------
580 Flgavbryt=0
590 Start=-1
600 Eof=0
610 POSIT #2,68
620 WHILE NOT Eof AND Flgavbryt<>-1
630 ; : ; "L{ser in ";
640 IF Start THEN ; "adress-filen..." ELSE ; "en omg}ng adresser till..."
650 Z=FNL{sin
660 ; "Sorterar" Ant "adresser..."
670 Z=FNQsort(1,Pos-5)
680 ; " "
690 IF Start THEN Z=FNWr("Korsreferens f|r disassemblering av "+F$,1)
700 Z=FNSkrivlista
710 Start=0
720 WEND
730 IF Flgavbryt=0 THEN ; "Klart."
740 CLOSE
750 END
760 !
770 !
780 ! --- L{s in adresser --------------
790 ! Adresserna lagras i Ref$ p} ett s{tt som till}ter sortering
800 ! med vanlig str{ngj{mf|relse. I filen inneh}ller varje post
810 ! Typ, Tilladress, Fr}nadress
820 ! F|r sorteringens skull {ndras det till: Tilladress, Fr}nadress, Typ
830 DEF FNL{sin
840 GET #2 S$ COUNT 5
850 Ant=0
860 Pos=1
870 WHILE ASCII(S$)<>115 AND Ant