10 BORDER 0: PAPER 0: INK 9: CLS: PRINT AT 5,0;"LOGIC ANALISER 8-DIGITS Ver 1.1D";AT 21,3;"BY SHURA TSELOBYONOCK @1996"
11 DIM Q$(8,3): GO SUB 7500
15 LET PORT=1: LET ZD=0: LET S=35535: LET A2=S: LET LM=0: LET Z=20: LET Z1=Z: LET STT=20: POKE 32794,4: POKE 32795,129: POKE 33026,255
16 GO SUB 9100
20 RANDOMIZE USR 15619: REM: LOAD "ACODE37" CODE
25 CLS
26 GO TO 2000
110 CLS: INPUT "INPUT NAME OF MAP";N$: RANDOMIZE USR 15619: REM: LOAD N$ CODE
120 INPUT "LOAD MARKS(Y/N)?";Y$
130 IF Y$="Y" OR Y$="y" THEN GO TO 160
140 IF Y$="N" OR Y$="n" THEN CLS: RETURN
150 GO TO 120
160 INPUT "INPUT NAME OF MARKS";N$: RANDOMIZE USR 15619: REM: LOAD N$ CODE 33024
170 RETURN
200 GO SUB 7000
204 GO SUB 1000
205 PLOT 160,25: DRAW 0,10: PLOT 160,165: PLOT 160,166: PLOT 160,167
206 LET I1=2: LET I=4: PRINT AT 19,0;INK I1;"F";INK I;"-FIND";INK I1;"ENTER";INK I;"-CH.ADR.";INK I1; "SPACE";INK I;"-SETMARK"
207 PRINT AT 20,0;INK I1;"Y";INK I;"-CH.J.ST.";INK I1; "0";INK I;"-CH.SC.ST.";INK I1;"O/P,U/I";INK I;"-L/R"
208 PRINT AT 18,0;INK I1;"M";INK I;"-MENU";INK I1; "C";INK I;"-CH.PR."
210 LET X=A1: GO SUB 5000: POKE 32799,MB: POKE 32800,SB: LET X=Z1: GO SUB 5000: GO SUB 5000: POKE 32780,MB: POKE 32781,SB
220 RANDOMIZE USR 34536
225 RANDOMIZE USR 33536
226 LET MB=PEEK 32796: LET SB=PEEK 32797: GO SUB 5500: PRINT AT 21,20;"  (12 spaces)  ";AT 21,0;"ADR=";X;" J.ST=";STT;" SCST=";Z;
230 LET K$=INKEY$
240 IF K$<>"" THEN GO TO 9000
260 GO TO 230
1000 LET ADM=33024: LET LM=0
1010 IF (PEEK ADM+PEEK (ADM+1) + PEEK (ADM+2)+PEEK (ADM+3))=0 THEN LET X=ADM+LM*4: GO SUB 5000: POKE 32807,LM+1: RETURN
1020 LET ADM=ADM+4: LET LM=LM+1
1030 GO TO 1010
2000 CLS: PRINT AT 6,0;"1-SCANING PORT OF LOGIC ANALISER";AT 8,0;"2-VISUAL WORK WITH MAP IN MEMORY";AT 10,0;"3-CHANGE PORT";AT 12,0;"4-LOAD SAVED MAP FROM DISK";AT 14,0;"5-SAVE MAP TO DISK"
2005 PRINT AT 16,0;"6-CLEAR MARKS"
2010 IF INKEY$="1" THEN CLS: GO SUB 9500: GO TO 2000
2020 IF INKEY$="2" THEN CLS: GO SUB 200: GO TO 2000
2030 IF INKEY$="3" THEN CLS: GO SUB 2200: GO TO 2000
2040 IF INKEY$="4" THEN CLS: GO SUB 110: GO TO 2000
2050 IF INKEY$="5" THEN CLS: GO SUB 2400: GO TO 2000
2060 IF INKEY$="6" THEN CLS: GO SUB 2500: GO TO 2000
2100 GO TO 2010
2200 PRINT AT 21,0;"OLD PORT: ";PORT: INPUT "INPUT NEW PORT(0-255)";PORT: IF PORT<0 OR PORT>255- THEN GO TO 2200
2210 POKE 32808,PORT: POKE 34473,PORT: POKE 34510,PORT
2220 CLS: RETURN
2400 INPUT "INPUT NAME OF MAP";N$: CLS: PRINT AT 11,13;"SAVING MAP": RANDOMIZE USR 15619: REM: SAVE N$ CODE 35535,29745
2401 IF LM>1 THEN INPUT "INPUT NAME OF MARKS";N$: PRINT AT 11,13;"SAVING MARKS": RANDOMIZE USR 15619: REM: SAVE N$ CODE 33024,LM*4
2410 RETURN
2500 INPUT "CLEAR MARKS?(Y/N)";Y$: IF Y$="Y" OR Y$="y" THEN GO TO 2600
2510 IF Y$="N" OR Y$="n" THEN RETURN
2520 GO TO 2500
2600 IF LM>1 THEN FOR T=33028 TO 33028+(LM-1)*4: POKE T,0: NEXT T: RETURN
2610 RETURN
3000 INPUT "INPUT MARK NAME TO SEARCH";N$: IF LEN N$>2 THEN GO TO 3000
3005 IF LEN N$=1 THEN LET N$=" "+N$
3010 FOR T=33026 TO 33026+LM*4 STEP 4
3011 LET E$=CHR$ PEEK T+CHR$ (PEEK (T+1))
3014 IF N$=E$ THEN LET MB=PEEK (T-2): LET SB=PEEK (T-1): GO SUB 5500: LET A2=X
3020 NEXT T: GO SUB 9100: RETURN
4000 INPUT "INPUT MARK NAME(2-LETTERS)";N$: IF LEN N$>2 THEN GO TO 4000
4010 IF LEN N$=1 THEN POKE 32798,32: POKE 32816,CODE N$
4015 IF LEN N$=2 THEN POKE 32798,CODE N$(1 TO 1): POKE 32816,CODE N$(2 TO 2)
4016 IF LEN N$=0 THEN RETURN
4020 RANDOMIZE USR 34419
4030 RETURN
5000 LET SB=INT (X/256): LET MB=X-256*INT (X/256): RETURN
5500 LET X=SB*256+MB: RETURN
6000 FOR T=2 TO 16 STEP 2
6010 PRINT AT 21,0;"  (32 spaces)  ": PRINT AT 21,0;"LINE";T/2;" CHANGE TO": INPUT L$: IF LEN L$>3 THEN GO TO 6010
6020 LET Q$(T/2)=L$
6030 NEXT T: PRINT AT 19,0;"  (31 spaces)  ": GO SUB 7000: RETURN
7000 FOR T=2 TO 16 STEP 2: PRINT AT T,0;Q$(T/2): NEXT T: RETURN
7500 FOR T=1 TO 8: LET L$=("D"+STR$ (T-1)+" "): LET Q$(T)=L$: NEXT T: RETURN
8000 INPUT "INPUT STEP FOR SKANING";Z
8010 IF Z<0 THEN POKE 32775,255: LET Z1=ABS Z: RETURN
8020 POKE 32775,0: LET Z1=Z: RETURN
8030 RETURN
9000 IF K$="P" OR K$="p" THEN LET A2=A2-1
9010 IF K$="O" OR K$="o" THEN LET A2=A2+1
9020 IF K$="I" OR K$="i" THEN LET A2=A2-STT
9030 IF K$="U" OR K$="u" THEN LET A2=A2+STT
9035 IF K$="F" OR K$="f" THEN GO SUB 3000
9036 IF K$="M" OR K$="m" THEN CLS: RETURN
9037 IF K$="C" OR K$="c" THEN GO SUB 6000: GO SUB 7000: GO TO 200
9040 IF K$=" " THEN GO SUB 4000: GO SUB 1000
9050 IF K$="0" THEN GO SUB 8000
9060 IF K$="Y" OR K$="y" THEN INPUT "INPUT JUMPING STEP(0-2000)";STT
9070 IF CODE K$=13 THEN INPUT "NEW SKAN ADR(35535-65180)";A2: GO SUB 9100: IF A2>65180 OR A2<S THEN GO TO 9070
9075 IF A2>65180 THEN LET A2=65180
9076 IF A2<S THEN LET A2=S
9080 GO SUB 9100: LET K$="": GO TO 210
9100 IF Z>=0 THEN LET A1=A2-INT (136/(Z + 1)): RETURN
9110 LET A1=A2-INT (136*ABS Z): RETURN
9500 INPUT "CHANGE OLD SPEED(Y/N/M)?";Y$
9510 IF Y$="Y" OR Y$="y" THEN GO TO 9540
9520 IF Y$="N" OR Y$="n" THEN GO TO 9600
9525 IF Y$="M" OR Y$="m" THEN RETURN
9530 GO TO 9500
9540 PRINT AT 21,0;"(10,20,50,75,100,200,500,740mks)":INPUT "INPUT NEW SPEED(mks)";SP: LET XX=INT ((SP*3.5-36)/10)
9545 IF SP=10 THEN LET ZD=0: GO TO 9600
9546 IF XX>255 OR XX<0 THEN GO TO 9540
9550 LET ZD=33: POKE 32787,XX
9600 CLS:INPUT "CHANGE OLD MASK(Y/N/M)?";Y$
9610 IF Y$="Y" OR Y$="y" THEN GO TO 9640
9620 IF Y$="N" OR Y$="n" THEN GO TO 9800
9625 IF Y$="M" OR Y$="m" THEN RETURN
9630 GO TO 9600
9640 POKE 32788,0: POKE 32789,0
9650 FOR D=34932 TO 34995 STEP 9
9660 PRINT AT 21,0;"SET BIT";(D-34932)/9;" TO ": INPUT B$: IF LEN B$>1 THEN GO TO 9660
9670 IF B$="1" THEN POKE 32806,PEEK 32789: RANDOMIZE USR D: POKE 32789,PEEK 32806: POKE 32806,PEEK 32788: RANDOMIZE USR D: POKE 32788,PEEK 32806: GO TO 9710
9680 IF B$="0" THEN POKE 32806,PEEK 32788: RANDOMIZE USR D: POKE 32788,PEEK 32806: GO TO 9710
9690 IF B$="X" OR B$="x" THEN GO TO 9710
9700 GO TO 9660
9710 PRINT AT 19,7-(D-34932)/9;B$
9720 NEXT D
9730 INPUT "AGREE(Y/N/M)?";Y$
9740 IF Y$="Y" OR Y$="y" THEN GO TO 9800
9750 IF Y$="N" OR Y$="n" THEN GO TO 9640
9755 IF Y$="M" OR Y$="m" THEN RETURN
9760 GO TO 9730
9800 CLS: PRINT AT 11,7;"SCANING PORT:";PORT: RANDOMIZE USR (34460+ZD)
9810 CLS: RETURN