100 REM +++++++++++++++++++++++++++++++ 110 REM ! Program .... LISTNING 120 REM ! Utg}va 1.1 83-11-29 130 REM ! av (c) Bertil Lindau Nr. 812 140 REM ! Minne 32 Kbytes f|r flexskiva 150 REM ! Ins{nt av Bertil Lindau 160 REM +++++++++++++++++++++++++++++++ 170 REM 180 REM Listningsprogram f|r 190 REM krets- och signalmatriserna 200 REM till paketet LOGSIM 210 REM 220 DIM T$(9%)=3%,S%(19%,50%),K%(9%,100%) 230 DIM S$(19%)=3% 240 FOR I%=0% TO 9% 250 READ T$(I%) 260 NEXT I% 270 DATA TYP," UT"," I1"," I2"," I3"," I4"," I5"," I6"," I7"," I8" 280 FOR I%=0% TO 19% 290 READ S$(I%) : NEXT I% 300 DATA NOD,VS,TA,TB,TC,TD,TE,TF,TG,TH 310 DATA TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR 320 POKE 65037%,200%,0% 330 Q$="L I S T N I N G A R" 340 DATA 5 350 DATA "Kretsmatris p} sk{rm" 360 DATA "Kretsmatris p} PR : " 370 DATA "Signalmatris p} sk{rm" 380 DATA "Signalmatris p} PR : " 390 DATA "Till menyn" 400 RESTORE 340 410 GOSUB 590 420 IF G0%<>G1% 470 430 E9%=100% 440 GOSUB 1090 450 PRINT CUR(15%,0%); 460 CHAIN "DR1:LOGSIM" 470 ON G0% GOTO 1760,3290,3380,3980 480 REM 490 REM ***************** 500 REM ==== MENYVAL ==== 510 REM ***************** 520 REM 530 REM G9% Lopvariabel 540 REM G1% Antal menyhopp 550 REM F$(G1%) Delnamn 560 REM G0% Hoppvariabel 570 REM A$ Inmatningsvariabel 580 REM 590 GOSUB 910 : REM Systemrad 600 READ G1% 610 FOR G9%=1% TO G1% 620 READ F$(G9%) 630 PRINT CUR(3%+2%*G9%,5%)G9%". "F$(G9%) 640 NEXT G9% 650 GOSUB 800 : REM Medelanderad 660 PRINT TAB(8%); 670 PRINT " V{lj rutin (1-"; 680 PRINT RIGHT$(NUM$(G1%),2%)") "; 690 GET A$ 700 LET G0%=ASC(A$)-48% 710 IF G0%<1% OR G0%>G1% 690 720 PRINT CUR(3%+2%*G0%,2%)"==>" 730 GOSUB 800 : REM Medelanderad 740 RETURN 750 REM 760 REM ********************** 770 REM ==== MEDELANDERAD ==== 780 REM ********************** 790 REM 800 PRINT CUR(23%,0%)TAB(39%); 810 PRINT CUR(23%,2%); 820 RETURN 830 REM 840 REM ******************* 850 REM ==== SYSTEMRAD ==== 860 REM ******************* 870 REM 880 REM X% Tabvariabel 890 REM Q$ Rutinnamn 900 REM 910 LET X%=18%-LEN(Q$)/2% 920 PRINT CHR$(12%); 930 PRINT TAB(X%)Q$ 940 PRINT CHR$(151%)STRING$(38%,35%) 950 PRINT CUR(22%,0%)STRING$(39%,61%); 960 RETURN 970 REM 980 REM ***************** 990 REM ==== FELRUTIN === 1000 REM ***************** 1010 REM 1020 REM E9% Felkode 1030 REM F9% Lopvariabel 1040 REM A$ Slaskvariabel 1050 REM 1060 IF E9%=0% RETURN 1070 POKE 32720%,ASC(">")+128% 1080 PRINT CHR$(7%); 1090 GOSUB 800 : REM Medelanderad 1100 IF E9%<100% 1170 1110 RESTORE 1240 1120 FOR F9%=100% TO E9% 1130 READ A$ : NEXT F9% 1140 X%=18%-LEN(A$)/2% 1150 PRINT TAB(X%)A$; 1160 RETURN 1170 PRINT TAB(6%); 1180 PRINT " Fel nr"E9%" (Se fellistan)"; 1190 RETURN 1200 REM ======================= 1210 REM ==== FELMEDELANDEN ==== 1220 REM ======================= 1230 REM 1240 DATA "Var god v{nta!" 1250 DATA "Filen finns ej p} skivan" 1260 DATA "Filen slut" 1270 DATA "Tryck p} RETURN " 1280 DATA "Samma matris igen? " 1290 DATA "Mer att lista. Tryck p} RETURN" 1300 REM 1310 REM ======================= 1320 REM ==== H{mta filnamn ==== 1330 REM ======================= 1340 REM 1350 H%=0% : REM hoppvariabel 1360 ONERRORGOTO 1650 1370 PRINT CUR(21%,0%)TAB(39%); 1380 IF K$='' 1460 1390 E9%=104% 1400 GOSUB 1060 1410 GET A$ 1420 IF A$="J" OR A$="j" H%=2% : RETURN 1430 IF A$="N" OR A$="n" 1450 1440 GOTO 1410 1450 GOSUB 800 : REM Medelanderad 1460 PRINT CUR(10%,0%)"Defaultv{rden: Drive.........DR1:" 1470 PRINT TAB(17%)"Extension....";X$ 1480 PRINT CUR(21%,0%)"Ange filnamnet "; 1490 INPUTLINE K$ 1500 GOSUB 800 : REM Medelanderad 1510 K$=LEFT$(K$,LEN(K$)-2%) 1520 IF LEN(K$)=0% H%=1% : RETURN 1530 IF INSTR(1%,K$,":") 1550 1540 K$="DR1:"+K$ 1550 IF INSTR(1%,K$,".") 1570 1560 K$=K$+X$ 1570 OPEN K$ ASFILE 2% 1580 PRINT CUR(3%,0%)"Jag h{mtar data fr}n "K$ 1590 RETURN 1600 REM 1610 REM ======================= 1620 REM === Tag hand om fel === 1630 REM ======================= 1640 REM 1650 E9%=ERRCODE 1660 IF E9%=21% E9%=101% 1670 IF E9%=34% E9%=102% 1680 GOSUB 1060 : REM Felmedelande 1690 K$='' 1700 GOTO 1360 1710 REM 1720 REM ============================ 1730 REM ==== Lista krets p} sk. ==== 1740 REM ============================ 1750 REM 1760 L%=0% 1770 Q$="LISTA KRETS P] SK[RM" 1780 GOSUB 910 : REM Systemrad 1790 X$='.N[T' : F0%=0% 1800 GOSUB 1350 : REM \ppna fil 1810 IF H%=1% 400 1820 IF H%=2% 1970 1830 F1%=0% : F7%=0% : F8%=0% : F9%=0% 1840 PRINT CUR(21%,0%)TAB(39%) 1850 INPUT #2%,R% 1860 INPUT #2%,R1% 1870 FOR I%=1% TO R% 1880 FOR J%=0% TO 9% 1890 INPUT #2%,K%(J%,I%) 1900 NEXT J% 1910 IF K%(0%,I%)<7% F1%=1% 1920 IF K%(0%,I%)=8% F8%=1% 1930 IF K%(0%,I%)=7% F7%=1% 1940 IF K%(0%,I%)=9% F9%=1% 1950 NEXT I% 1960 CLOSE 2% 1970 GOSUB 910 : REM SYSTEMRAD 1980 PRINT CUR(2%,0%); 1990 IF F1%=0% 2140 2000 GOSUB 2730 : REM Skriv grind|vers 2010 FOR I%=1% TO R% 2020 IF K%(0%,I%)>6% 2130 2030 IF F0%<19% OR L%=1% 2060 2040 GOSUB 3170 : REM Rensa sk{rmen 2050 GOSUB 2730 : REM Skriv grind|vers 2060 PRINT #L%,RIGHT$(NUM$(I%),2%); 2070 F0%=F0%+1% 2080 FOR J%=0% TO 9% 2090 IF K%(J%,I%)=0% 2110 2100 PRINT #L%TAB(J%*(3%+L%)+4%)K%(J%,I%); 2110 NEXT J% 2120 PRINT #L% 2130 NEXT I% 2140 IF F9%=0% 2300 2150 PRINT #L% 2160 IF F0%+4%>18% AND L%=0% GOSUB 3170 2170 GOSUB 2870 : REM Skriv J-K |versk 2180 FOR I%=1% TO R% 2190 IF K%(0%,I%)<>9% 2290 2200 IF F0%<19% OR L%=1% 2230 2210 GOSUB 3170 : REM Rensa sk{rmen 2220 GOSUB 2870 : REM Skriv J-K |versk 2230 PRINT #L%,RIGHT$(NUM$(I%),2%); 2240 F0%=F0%+1% 2250 FOR J%=0% TO 5% 2260 PRINT #L%TAB(J%*4%+4%)K%(J%,I%); 2270 NEXT J% 2280 PRINT #L% 2290 NEXT I% 2300 IF F8%=0% 2460 2310 PRINT #L% 2320 IF F0%+4%>18% AND L%=0% GOSUB 3170 2330 GOSUB 2970 : REM Vippa|versk 2340 FOR I%=1% TO R% 2350 IF K%(0%,I%)<>8% 2450 2360 IF F0%<19% OR L%=1% 2390 2370 GOSUB 3170 : REM Rensa sk{rmen 2380 GOSUB 2970 : REM Vippa|versk 2390 PRINT #L%,RIGHT$(NUM$(I%),2%); 2400 F0%=F0%+1% 2410 FOR J%=0% TO 5% 2420 PRINT #L%TAB(J%*4%+4%)K%(J%,I%); 2430 NEXT J% 2440 PRINT #L% 2450 NEXT I% 2460 IF F7%=0% 2620 2470 PRINT #L% 2480 IF F0%+4%>18% AND L%=0% GOSUB 3170 2490 GOSUB 3070 2500 FOR I%=1% TO R% 2510 IF K%(0%,I%)<>7% 2610 2520 IF F0%<19% OR L%=1% 2550 2530 GOSUB 3170 : REM Rensa sk{rm 2540 GOSUB 3070 : REM Skriv |verskrift 2550 PRINT #L%,RIGHT$(NUM$(I%),2%); 2560 F0%=F0%+1% 2570 FOR J%=0% TO 7% 2580 PRINT #L%TAB(J%*4%+4%)K%(J%,I%); 2590 NEXT J% 2600 PRINT #L% 2610 NEXT I% 2620 E9%=103% 2630 GOSUB 1060 : REM Medelande 2640 GET A$ 2650 IF ASC(A$)<>13% 2640 2660 IF L%=1% CLOSE L% 2670 GOTO 400 2680 REM 2690 REM ========================= 2700 REM === Skriv grind|vers. === 2710 REM ========================= 2720 REM 2730 PRINT #L%,"Grindar" 2740 PRINT #L%,STRING$(7%+L%*36%,45%+16%*L%) 2750 PRINT #L%,"NR"; 2760 FOR A%=0% TO 9% 2770 PRINT #L%,TAB(A%*(3%+L%)+4%)T$(A%); 2780 NEXT A% 2790 PRINT #L% 2800 F0%=F0%+3% 2810 RETURN 2820 REM 2830 REM ======================== 2840 REM === Skriv J-K |versk === 2850 REM ======================== 2860 REM 2870 PRINT #L%,"J-K Vippa" 2880 PRINT #L%,STRING$(9%+L%*18%,45%+16%*L%) 2890 PRINT #L%,"NR TYP UT UC TF CL RST" 2900 F0%=F0%+4% 2910 RETURN 2920 REM 2930 REM ============================ 2940 REM ==== Skriv D-vippa |ver ==== 2950 REM ============================ 2960 REM 2970 PRINT #L%,"D-Vippa utan RST" 2980 PRINT #L%,STRING$(16%+L%*11%,45%+16%*L%) 2990 PRINT #L%"NR TYP UT UC TF CL DA" 3000 F0%=F0%+4% 3010 RETURN 3020 REM 3030 REM ============================== 3040 REM ==== Skriv D-vippa m |ve ===== 3050 REM ============================== 3060 REM 3070 PRINT #L%,"D-Vippa med RST" 3080 PRINT #L%,STRING$(15%+L%*20%,45%+16%*L%) 3090 PRINT #L%"NR TYP UT UC TF CL DA SET RST" 3100 F0%=F0%+4% 3110 RETURN 3120 REM 3130 REM ========================= 3140 REM ===== Rensa sk{rmen ===== 3150 REM ========================= 3160 REM 3170 E9%=105% 3180 GOSUB 1090 : REM Medelande 3190 GET A$ 3200 IF ASC(A$)<>13% 3190 3210 GOSUB 910 : REM Systemrad 3220 PRINT CUR(2%,0%); 3230 F0%=0% : RETURN 3240 REM 3250 REM *************************** 3260 REM === Lista kretsar p} PR === 3270 REM *************************** 3280 REM 3290 L%=1% 3300 OPEN "PR:" ASFILE L% 3310 F0%=0% 3320 GOTO 1770 3330 REM 3340 REM **************************** 3350 REM ==== Lista signalmatris ==== 3360 REM **************************** 3370 REM 3380 Q$="LISTA SIGNALMATRIS" 3390 GOSUB 3420 3400 IF H%=1% 400 3410 GOTO 3550 3420 GOSUB 910 : REM Systemrad 3430 T$=K$ : K$=S$ : X$=".SIM" 3440 GOSUB 1350 : REM H{mta filnamn 3450 S$=K$ : K$=T$ 3460 IF H%>0% RETURN 3470 INPUT #2%,S% 3480 INPUT #2%,S0% 3490 FOR I%=1% TO S% 3500 FOR J%=0% TO 19% 3510 INPUT #2%,S%(J%,I%) 3520 NEXT J% : NEXT I% 3530 CLOSE 1% 3540 RETURN 3550 GOSUB 3870 : REM Skriv tabell 3560 F0%=0% 3570 FOR I%=1% TO S% 3580 F0%=F0%+1% 3590 FOR J%=0% TO 19% 3600 PRINT CUR(J%+2%,F0%*4%)S%(J%,I%) 3610 NEXT J% 3620 IF F0%<>9% 3640 3630 GOSUB 3730 : REM Full sk{rm 3640 NEXT I% 3650 E9%=103% 3660 GOSUB 3740 : REM Medelande 3670 GOTO 340 3680 REM 3690 REM ===================== 3700 REM ===== Ful sk{rm ===== 3710 REM ===================== 3720 REM 3730 E9%=105% 3740 GOSUB 1060 : REM Medelande 3750 GET A$ 3760 IF ASC(A$)<>13% 3750 3770 IF S%<=I% RETURN 3780 GOSUB 910 : REM Systemrad 3790 GOSUB 3870 : REM Skriv tabell 3800 GOSUB 800 : REM Medelanderad 3810 F0%=0% : RETURN 3820 REM 3830 REM ====================== 3840 REM ==== Skriv tabell ==== 3850 REM ====================== 3860 REM 3870 GOSUB 910 : REM Systemrad 3880 FOR K%=2% TO 21% 3890 IF K%=2% X%=0% ELSE X%=1% 3900 PRINT CUR(K%,X%)S$(K%-2%) 3910 NEXT K% 3920 RETURN 3930 REM 3940 REM ========================= 3950 REM ==== Skriv signal PR ==== 3960 REM ========================= 3970 REM 3980 Q$="LISTNING AV SIGNALMATRIS P] PR:" 3990 N0%=0% 4000 GOSUB 3420 4010 IF H%=1% 400 4020 OPEN 'PR:' ASFILE 1% 4030 A$=RIGHT$(S$,5%) 4040 A$=LEFT$(A$,LEN(A$)-4%) 4050 PRINT #1%,"Utskrift av signalmatris "A$ 4060 PRINT #1%,STRING$(25%+LEN(A$),61%) 4070 PRINT #1% : PRINT #1% 4080 FOR I%=0% TO 19% 4090 PRINT #1%TAB(I%*4%+1%)S$(I%); 4100 NEXT I% 4110 PRINT #1% 4120 PRINT #1%STRING$(80%,61%) 4130 FOR I%=1% TO S% 4140 IF N0%