This is non-commercial site, its content is based on Atari 8-bit home computer contents and references.
If you feel your rights are violated by showing/using any part of contents of your product represented on this page,
please contact me immediatelly so I can remove it!
Listing 1
5 POKE 16,64:POKE 53774,64:POKE 580,1
10 REM
20 REM
30 DIM P(3000),M(27),LENGTH(27)
40 DIM A$(20),B$(19),C1$(9),C2$(28),C3$(31),C4$(5),C6$(10)
50 DIM N1$(17),N2$(12),N3$(10),N4$(11),N5$(16),N6$(21),N7$(16)
60 DIM T$(104),N$(%1),X$(%1),Y$(%1),Z$(%1)
70 REM
80 C1$="TRNINVTRI":C2$="ERASEINPUTPRINTIDN DET HOD":C3$="DUMP SAVE LOAD CLEAREND UNLOCK":C4$="+-./*"
85 C6$="0123456789"
90 N1$="MATRIX NO DECLARE":N2$="SYNTAX ERROR":N3$="TYPE ERROR":N4$="MEMORY FULL":N5$="UNKNOWN COMMAND"
100 N6$="MATRIX PROCESOR READY":N7$="MATRIX NO DEFINE"
110 X5=5:X4=4:MAX=3000
120 ------------------------------
125 EXEC HEAD:POKE 732,17
130 REM
135 # R1:IF PEEK(732)=17 THEN EXEC MENU:POKE 732,0
140 EXEC BEEP:TRAP #ERR:INPUT " ",B$
142 IF LEN(B$)<%3 THEN ? N5$:?:GO# R1
145 I=%1:WHILE B$(I,I)=" " AND I<19:I=I+%1:WEND:L=LEN(B$):B$=B$(I,L):B$(L+%1,L+%1)=" "
160 IF B$(%2,%2)<>"=" THEN GO# R2
170 N$=B$(%1,%1):EXEC VER
180 IF UINSTR(C6$,B$(%3,%3))<>0:K=VAL(B$(%3,LEN(B$))):EXEC PAR:EXEC NAPLN:GO# R1:ENDIF
190 IF LEN(B$)=4 AND UINSTR(C6$,B$(X4,X4))=%0:X$=N$:N$=B$(%3,%3):EXEC VER:Y$=N$:EXEC COPY:GO# R1:ENDIF
200 J=UINSTR(C4$,B$(X4,X4))
210 IF J<5 AND J>0:X$=N$:N$=B$(%3,%3):EXEC VER:Y$=N$:N$=B$(X5,X5):EXEC VER:Z$=N$:EXEC SOUCET:FL=1:ENDIF
220 IF J=5:X$=N$
230 IF UINSTR(C6$,B$(X5,X5))<>0:N$=B$(%3,%3):EXEC VER:Y$=N$:K=VAL(B$(X5,LEN(B$))):EXEC SKAL:FL=1:ELSE
240 N$=B$(%3,%3):EXEC VER:Y$=N$:N$=B$(X5,X5):EXEC VER:Z$=N$:EXEC SOUCIN:FL=1:ENDIF:ENDIF
250 J=UINSTR(C1$,B$(%3,X5)):IF J<>0:X$=N$:N$=B$(7,7):Q=0:EXEC VER:Y$=N$:ON (J DIV %3+1)EXEC TRN,INV,TRI:FL=%1:ENDIF
260 IF FL=1:FL=0:ELSE:?:? N5$:?:ENDIF:GO# R1
270 # R2:I=%1:WHILE B$(I,I)<>" " AND I<19:I=I+1:WEND:I=I-%1:J=UINSTR(C2$,B$(%1,I))
280 IF J<>0:N$=B$(I+%2,I+%2):EXEC VER:EXEC PAR:J=J DIV X5+1
290 ON JEXEC ERASE,INPUT,PRINT,IDN,DET,HOD:GO# R1:ENDIF
300 J=UINSTR(C3$,B$(%1,I))
310 IF J<>0:J=J DIV X5+1:ON JEXEC DUMP,SAVE,LOAD,CLEAR,END,UNLOCK:GO# R1:ENDIF
312 IF B$(1,I)="DECLARE":N$=B$(9,9):R=VAL(B$(11)):S=VAL(B$(13+INT(CLOG(R)))):EXEC DECLARE:GO# R1:ENDIF
320 ? N5$:?:GO# R1
470 REM
480 ------------------------------
490 PROC PAR
495 P=UINSTR(T$,N$)
500 N=(P+3) DIV X4:IF N<>%0:R=ASC(T$(P+%2,P+%2)):S=ASC(T$(P+%3,P+%3)):A=M(N):ENDIF
510 ENDPROC
520 ------------------------------
530 PROC DECLARE
540 K=UINSTR(T$,N$):L=LEN(T$)+%1:N=(L+%3)/X4
550 IF K<>%0:? "NAME ERROR":?:ELSE:IF R*S+M(N)>MAX:? N4$:?
560 ELSE:T$(L,L)=N$:T$(L+%2,L+%2)=CHR$(R):T$(L+%3,L+%3)=CHR$(S):LENGTH(N)=R*S:M(N+%1)=M(N)+R*S
565 T$(L+%1,L+%1)="":? N6$:?
570 ENDIF:ENDIF:ENDPROC
580 ------------------------------
590 PROC INPUT:MX=0
595 TRAP 637
600 FOR K=%0 TO R-%1
610 FOR J=%0 TO S-%1
620 ? "[";K+%1;",";J+%1;"]=";:INPUT " ",L:P(M(N)+K*S+J)=L:L=LEN(STR$(L)):IF L>MX THEN MX=L
630 NEXT J:NEXT K:T$(P+%1,P+%1)=CHR$(MX):?:? N6$:?:ENDPROC
634 ------------------------------
637 ? "DATA ERROR":?:TRAP 637:GOTO ERL
640 ------------------------------
650 PROC DUMP
660 *F +
670 FOR I=%1 TO LEN(T$) STEP 16
680 FOR J=%0 TO %3
690 L=I+J*4:IF L<LEN(T$):? T$(L,L);"(";ASC(T$(L+%2,L+%2));",";ASC(T$(L+%3,L+%3));")",:ENDIF
700 NEXT J:?:NEXT I:? N6$:?:*F -
710 ENDPROC
720 ------------------------------
730 PROC END
740 INPUT "ARE YOU SURE";N$
750 IF N$="Y" OR N$="A":GRAPHICS 0:SETCOLOR 1,0,0:SETCOLOR 2,11,8:SETCOLOR 4,2,4:? "Turbo BASIC READY":? "34021 Bytes free"
760 NEW
770 ENDIF:ENDPROC
799 ------------------------------
800 PROC PRINT
805 MX=ASC(T$(P+%1,P+%1)):IF MX<>0
810 ? "Tisk adku":? "Tisk loupce":? "Tisk ele matice"
820 INPUT N$
830 IF N$="R":INPUT "Cislo radku";L
840 FOR I=%0 TO S-%1:? I+%1,P(A+S*(L-%1)+I):NEXT I:ENDIF:IF N$="R" THEN GO# P2
850 IF N$="S":INPUT "Cislo sloupce";L
860 FOR I=%0 TO R-%1:? I+%1,P(A+S*I+L-%1):NEXT I:ENDIF:IF N$="S" THEN GO# P2
870 IF N$="C"
880 IF R<11 AND S<11:INPUT "Chcete kumulovany tisk";N$:ELSE:GO# P1:ENDIF:IF N$="N" THEN GO# P1
890 D=40 DIV S-1:IF MX+%2<D THEN D=MX+%2
895 POKE 201,D
900 FOR I=%0 TO R-%1
910 FOR J=%0 TO S-%1
915 B=INT(P(A+S*I+J)*1000000+0.5)/1000000
920 A$=STR$(B):IF LEN(A$)<D-%2:Q=LEN(A$):ELSE:Q=D-%2:ENDIF:? A$(%1,Q),:NEXT J:?:NEXT I:POKE 201,10
930 IF MX<=D-%2:? "Tisk s plnou presnosti":ELSE:? "Tisk 1. n pozic":ENDIF
940 ELSE
950 # P1:FOR I=%0 TO S-%1:? "Sloupec c.";I+%1:FOR J=%0 TO R-%1:? J+%1;" ....",P(A+S*J+I):NEXT J:?:NEXT I
960 ENDIF:? N6$:?:ELSE:?:? "MATRIX NO DEFINE":?
970 # P2:ENDIF:ENDPROC
999 ------------------------------
1000 PROC SOUCET
1003 X=UINSTR(T$,X$):Y=UINSTR(T$,Y$):Z=UINSTR(T$,Z$)
1005 MX=ASC(T$(Y+%1,Y+%1))*ASC(T$(Z+%1,Z+%1)):IF MX<>%0
1010 IF X*Y*Z=0:? N1$:ELSE
1020 IF (T$(X+%2,X+%3)<>T$(Y+%2,Y+%3)) OR (T$(X+%2,X+%3)<>T$(Z+%2,Z+%3)):? N3$:ELSE
1030 X=X DIV X4+%1:Y=Y DIV X4+%1:Z=Z DIV X4+%1:L=LENGTH(X)-%1
1040 ON J GOTO 1050,1100,1150,1200
1050 FOR I=%0 TO L:P(M(X)+I)=P(M(Y)+I)+P(M(Z)+I):NEXT I:GOTO 1230
1100 FOR I=%0 TO L:P(M(X)+I)=P(M(Y)+I)-P(M(Z)+I):NEXT I:GOTO 1230
1150 FOR I=%0 TO L:P(M(X)+I)=P(M(Y)+I)*P(M(Z)+I):NEXT I:GOTO 1230
1200 FOR I=%0 TO L:P(M(X)+I)=P(M(Y)+I)/P(M(Z)+I):NEXT I:GOTO 1230
1230 N$=X$:EXEC MX:? N6$:?:ENDIF:ENDIF:ELSE:? N7$:?:ENDIF
1240 ENDPROC
1499 ------------------------------
1500 PROC MX:MX=%0:EXEC PAR
1510 FOR J=%0 TO R*S-%1
1517 L=LEN(STR$(P(A+J))):IF L>MX THEN MX=L
1520 NEXT J:T$(P+%1,P+%1)=CHR$(MX)
1530 ENDPROC
1540 ------------------------------
1550 PROC VER
1560 IF UINSTR(T$,N$)=0 THEN ? N1$:?:POP:GO# R1
1570 ENDPROC
1580 ------------------------------
1600 PROC SOUCIN
1610 X=UINSTR(T$,X$):I=ASC(T$(X+%2,X+%2)):Y=UINSTR(T$,Y$):J=ASC(T$(X+%3,X+%3)):Z=UINSTR(T$,Z$):K=ASC(T$(Z+%2,Z+%2))
1615 MX=ASC(T$(Y+%1,Y+%1))*ASC(T$(Z+%1,Z+%1)):IF MX<>%0
1620 IF X*Y*Z=0:? N1$:ELSE
1630 IF X=Y OR X=Z:? N2$:ELSE
1640 IF T$(X+%2,X+%2)<>T$(Y+%2,Y+%2) OR T$(X+%3,X+%3)<>T$(Z+%3,Z+%3) OR T$(Y+%3,Y+%3)<>T$(Z+%2,Z+%2):? N3$:?:ELSE
1650 X=X DIV X4+%1:Y=Y DIV X4+%1:Z=Z DIV X4+%1
1660 FOR F=%0 TO LENGTH(X)-%1:P(M(X)+F)=%0:NEXT F
1670 FOR F=%0 TO I-%1
1680 FOR G=%0 TO J-%1
1690 FOR H=%0 TO K-%1
1700 L=(M(X)+F*J+G):P(L)=P(L)+P(M(Y)+F*K+H)*P(M(Z)+H*J+G)
1710 NEXT H:NEXT G:NEXT F:? N6$:?:ENDIF:ENDIF:ENDIF
1720 N$=X$:EXEC PAR:EXEC MX:ELSE:? N7$:?:ENDIF
1730 ENDPROC
1740 ------------------------------
1750 PROC SKAL
1760 X=UINSTR(T$,X$):Y=UINSTR(T$,Y$)
1768 MX=ASC(T$(Y+%1,Y+%1)):IF MX<>%0
1770 IF T$(X+%2,X+%3)<>T$(Y+%2,Y+%3):? N3$:?:ELSE:X=X DIV X4+1:Y=Y DIV X4+1:N$=X$:EXEC PAR
1780 FOR J=%0 TO R*S-%1:P(M(X)+J)=P(M(Y)+J)*K:NEXT J:EXEC MX:? N6$:?:ENDIF:ELSE:? N7$:?:ENDIF
1790 ENDPROC
1799 ------------------------------
1800 PROC COPY
1810 X=UINSTR(T$,X$):Y=UINSTR(T$,Y$)
1815 MX=ASC(T$(Y+%1,Y+%1)):IF MX<>%0
1820 IF T$(X+%2,X+%3)<>T$(Y+%2,Y+%3):? N3$:?:ELSE:X=X DIV X4+%1:Y=Y DIV X4+%1
1830 I=DPEEK(140)+M(X)*6:J=DPEEK(140)+M(Y)*6:K=(M(Y+%1)-M(Y))*6
1840 MOVE J,I,K:N$=X$:EXEC MX:? N6$:?:ENDIF:ELSE:? N7$:?:ENDIF
1850 ENDPROC
1860 ------------------------------
1870 PROC UNLOCK:I=%0
1880 INPUT "ENTER CODE";B$:I=I+%1
1890 IF B$<>"28.4.1971" AND I<3 THEN 1880
1900 IF I>2 AND B$<>"28.4.1971":? "UNAUTHORIZED ATTEMPT FOR UNLOCKING!":PAUSE 100:?:? "PROGRAMM DESTROYED!"
1910 PAUSE 100:BYE:ENDIF
1920 ?:? "CODE O.K.!":? "PROGRAMM UNLOCKING!":?:POKE 16,192:POKE 53774,247:POKE 580,0:ENDIF
1930 ENDPROC
1940 ------------------------------
1950 PROC XS
1960 N$=Y$:EXEC PAR
1970 X=UINSTR(T$,X$):Y=UINSTR(T$,Y$):FL=0
1980 IF T$(X+%2,X+%3)<>T$(Y+%2,Y+%3) OR T$(Y+%2,Y+%2)<>T$(Y+%3,Y+%3) THEN FL=1
1990 X=X DIV X4+%1:Y=Y DIV X4+%1:N=M(LEN(T$)/X4+%1):S1=DPEEK(140)+M(X)*6:S2=DPEEK(140)+M(Y)*6
2000 S3=DPEEK(140)+N*6:S4=(M(Y+%1)-M(Y))*6
2010 ENDPROC
2020 ------------------------------
2030 PROC TRN
2035 Y=UINSTR(T$,Y$):IF ASC(T$(Y+%1,Y+%1))<>%0
2040 EXEC XS
2050 IF FL=%1:? N3$:?:ELSE:IF MAX-N<R*S:? N4$:?:ELSE:MOVE S2,S3,S4
2060 FOR J=%0 TO R-%2:FOR K=J+%1 TO R-%1:F=P(N+R*J+K):P(N+R*J+K)=P(N+R*K+J):P(N+R*K+J)=F:NEXT K:NEXT J
2070 MOVE S3,S1,S4:N$=X$:EXEC MX:? N6$:?:ENDIF:ENDIF:ELSE:? N7$:?:ENDIF
2080 ENDPROC
2090 ------------------------------
2100 PROC INV
2105 Y=UINSTR(T$,Y$):IF ASC(T$(Y+%1,Y+%1))<>%0
2110 EXEC XS:J=R:IF FL=1:? N3$:?:ELSE:IF MAX-N<2*R*S:? N4$:?:ELSE:E=R
2115 FOR B=N+R*S TO N+2*R*S:P(B)=%0:NEXT B
2120 MOVE S2,S3,S4:FOR B=%1 TO J:GOSUB 2200:P(H)=P(H)+%1:NEXT B
2130 # G1:GOSUB 2200:D=P(H)-%1:GOSUB 2230:B=B-%1
2140 IF B>0 THEN GO# G1
2150 FOR B=%1 TO J:GOSUB 2200:P(H)=P(H)-%1:NEXT B:GO# G4
2200 C=B:GO# G2
2210 C=F
2220 # G2:C=C-R+N-%1:H=R*B+C:I=R*E+C:RETURN
2230 FOR F=%1 TO J:GOSUB 2210:IF ABS(D)>1e-8:P(H)=P(H)/D:ELSE:? "MATRIX SINGULAR":?:POP:TRAP #R1:GOTO 2280:ENDIF
2235 NEXT F
2240 FOR E=%1 TO J:IF B=E THEN GO# G3
2250 GOSUB 2200:D=P(I):FOR F=%1 TO J:GOSUB 2210:P(I)=P(I)-D*P(H):NEXT F
2260 # G3:NEXT E:RETURN
2270 # G4:MOVE S3,S1,S4:N$=X$:EXEC MX:? N6$:?
2280 ENDIF:ENDIF:ELSE:? N7$:?:ENDIF
2285 ENDPROC
2290 ------------------------------
2300 PROC DET
2305 I=UINSTR(T$,N$):IF ASC(T$(I+%1,I+%1))<>%0
2310 IF R<>S:? N3$:?:ELSE:X$=N$:Y$=N$:EXEC XS:IF MAX-N<R*S:? N4$:?:ELSE:MOVE S1,S3,S4:D=1:A=N-1:N=R:L=R
2320 FOR U=%1 TO N:H=ABS(P(A+L*(U-%1)+U)):R=U:S=U
2330 FOR V=U TO N:FOR W=U TO N:IF ABS(P(A+L*(V-%1)+W))<=H THEN GO# D1
2340 H=ABS(P(A+L*(V-%1)+W)):R=V:S=W
2350 # D1:NEXT W:NEXT V:IF R=U THEN GO# D2
2360 FOR W=U TO N:Q=P(A+L*(U-%1)+W):P(A+(U-%1)*L+W)=-P(A+L*(R-%1)+W):P(A+L*(R-%1)+W)=Q:NEXT W
2370 # D2:IF S=U THEN GO# D3
2380 FOR V=U TO N:Q=P(A+L*(V-%1)+U):P(A+(V-%1)*L+U)=-P(A+(V-%1)*L+S):P(A+L*(V-%1)+S)=Q:NEXT V
2390 # D3:IF ABS(P(A+L*(U-%1)+U))<=1e-20 THEN D=%0:GO# D4
2400 D=D*P(A+L*(U-%1)+U):FOR V=U+%1 TO N:FOR W=U+%1 TO N
2405 C=A+L*(V-%1)+W:P(C)=P(C)-P(A+L*(U-%1)+W)*P(A+L*(V-%1)+U)/P(A+L*(U-%1)+U)
2410 NEXT W:NEXT V:NEXT U
2420 # D4:D=INT(D*100000+0.5)/100000:? "DET ";N$;"=";D:? N6$:?:ENDIF:ENDIF:ELSE:? N7$:?:ENDIF
2430 ENDPROC
2440 ------------------------------
4990 PROC HEAD
5000 I=48039:RESTORE 5010
5010 READ J:IF J<>-1 THEN POKE I,J:I=I+1:GOTO 5010
5020 DPOKE 560,48039
5030 DPOKE 88,48152
5040 DATA 70,200,187,6,2,112,15,15,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,130,65,167,187,-1
5045 SETCOLOR 0,5,8:SETCOLOR 1,0,0:SETCOLOR 2,11,8:SETCOLOR 4,2,4:CLS:POKE 82,1:POKE 83,38:POSITION 1,2
5050 RESTORE 5070:I=48074
5060 READ J:IF J<>-1 THEN POKE I,J:I=I+%1:GOTO 5060
5070 DATA 45,33,52,50,41,56,0,48,50,47,35,37,51,47,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1
5080 I=48112:RESTORE 5100
5090 READ J:IF J<>-1 THEN POKE I,J+128:I=I+1:GOTO 5090
5100 DATA 0,0,46,37,55,52,47,46,0,36,33,52,33,0,44,52,36,14,0,0,8,35,9,17,25,24,24,0,42,33,46,0,51,52,37,35,40,50
5110 DATA 0,0,-1
5120 I=48010:RESTORE 5150
5130 READ J:IF J<>-%1 THEN POKE I,J:I=I+%1:GOTO 5130
5140 DPOKE 512,48010:POKE 54286,192
5150 DATA 72,138,72,152,72,162,0,160,80,169,0,157,24,188,232,136,208,249,104,168,104,170,104,64,-1
5160 ENDPROC
5190 ------------------------------
5200 PROC CLEAR
5205 T$(%1)="":T$(104)="":T$(%2)=T$
5210 T$=""
5215 ? N6$:?
5220 ENDPROC
5230 ------------------------------
5240 PROC NAPLN
5250 FOR I=%1 TO R*S:P(A+I-%1)=K:NEXT I
5260 EXEC MX:? N6$:?
5270 ENDPROC
5280 ------------------------------
5300 PROC IDN
5305 IF R<>S:? N3$:?:ELSE
5310 K=%0:EXEC NAPLN
5320 FOR I=%0 TO R-%1:P(A+I*R+I)=%1:NEXT I:ENDIF
5330 ENDPROC
5340 ------------------------------
5350 PROC ERASE
5360 K=DPEEK(140)+A*6:L=K+R*S*6:B=LEN(T$):T=B/X4:D=DPEEK(140)+M(T+%1)*6-L:MOVE L,K,ABS(D)
5370 FOR J=N TO T-%1:LENGTH(J)=LENGTH(J+%1):NEXT J
5380 FOR J=N TO T-%1:M(J+%1)=M(J)+LENGTH(J):NEXT J:M(J+%1)=%0
5390 IF N*X4<B:T$(N*X4-%3,B-X4)=T$(N*X4+%1,B):T$=T$(%1,B-X4):ELSE:IF B=X4 THEN T$="":? N6$:?:GOTO 5400
5395 T$=T$(%1,B-X4):ENDIF:? N6$:?
5400 ENDPROC
5410 ------------------------------
5420 PROC TRI
5425 X=UINSTR(T$,X$):Y=UINSTR(T$,Y$)
5427 IF ASC(T$(Y+%1,Y+%1))<>%0
5430 IF T$(X+%2,X+%3)<>T$(Y+%2,Y+%3):? N3$:?:ELSE:N$=Y$:EXEC PAR:TRAP #T1
5435 EXEC XS:A=N
5440 IF MAX-A<R*S:? N4$:?:ELSE:MOVE S2,S3,S4
5450 FOR C=%0 TO R-%2:IF P(A+C*S+C)=%0:FOR B=C+%1 TO R-%1:FOR G=C TO S-%1
5460 H=P(A+S*C+G):P(A+C*S+G)=P(A+B*S+G):P(A+B*S+G)=H:NEXT G
5470 IF ABS(P(A+C*S+C))<>%0 THEN B=R+%1:NEXT B:ENDIF:TRAP #T1
5480 IF B=R+%1 THEN GO# T2
5490 FOR D=C+%1 TO R-%1:F=-P(A+D*S+C)/P(A+C*S+C):FOR G=%0 TO S-%1:P(A+D*S+G)=P(A+D*S+G)+F*P(A+C*S+G)
5500 NEXT G:NEXT D
5505 # T2:NEXT C
5510 # T1:B=%0:IF Q<>-%1 THEN ? N6$:?:MOVE S3,S1,S4:N$=X$:EXEC MX
5515 ENDIF:ENDIF:ELSE:? N7$:?:B=%1:ENDIF
5520 ENDPROC
5530 ------------------------------
5540 PROC SAVE
5550 INPUT "Name:",A$:N=M(LEN(T$)/X4+%1)
5560 OPEN #1,8,0,"T:"
5570 PRINT #1,A$:? #1,T$:? #1,N
5580 FOR I=%1 TO 27:PRINT #1,LENGTH(I):? #1,M(I):NEXT I
5590 FOR I=%0 TO N:PRINT #1,P(I):NEXT I:CLOSE #1:? N6$:?:POKE 54286,192
5600 ENDPROC
5610 ------------------------------
5620 PROC LOAD
5630 T$(104)="":A$(19)="":TRAP 5677
5640 OPEN #1,4,128,"T:"
5650 INPUT #1,A$:INPUT #1,T$:INPUT #1,N
5660 FOR I=%1 TO 27:INPUT #1,R:INPUT #1,S:LENGTH(I)=R:M(I)=S:NEXT I
5670 FOR I=%0 TO N:INPUT #1,R:P(I)=R:NEXT I:CLOSE #1
5672 T$=T$(11,LEN(T$)):A$=A$(11,LEN(A$))
5675 ? "Loaded ";A$:? N6$:?:GOTO 5680
5677 ? "BOOT ERROR!":?:SOUND 1,23,22,14:PAUSE 30:SOUND:CLOSE
5680 POKE 54286,192:ENDPROC
5690 ------------------------------
5700 PROC BEEP
5710 SOUND 1,23,10,14:PAUSE 5:SOUND
5720 ENDPROC
5730 ------------------------------
5740 PROC HOD:TRAP 40000
5750 X$=N$:Y$=N$:Q=-%1:EXEC TRI:K=R-%1:L=R:IF B=%1 THEN 5780
5760 WHILE P(A+S*(L-%1)+S-%1)=%0 AND L>=%1:L=L-%1:WEND
5770 ? "HOD =";L:? N6$:?
5780 ENDPROC
5790 ------------------------------
5800 # ERR:IF RND>0.9500000000000001:? "SORRY VOLE":? "ERROR":?:ELSE:? N2$:?:ENDIF:EXEC BEEP:GO# R1
6000 PROC MENU:POKE 752,1
6010 CLS:POSITION 4,3:POKE 82,4
6020 ? "****** SEZNAM PRIKAZU *******"
6030 ? "A=B+C":? "A=B-C skalarni operace":? "A=B.C mezi jednot.prvky":? "A=B/C"
6040 ? "A=B*C maticove nasobeni":? "A=B*skal nasobeni skalarem":? "A=B prirazeni matic"
6050 ? "A=TRN B transpozice":? "A=INV B inverze":? "A=TRI B redukce na troj.tvar"
6060 ? "A=skal priraz.vsem prvkum":? "IDN A vytvoreni jednot.mat.":? "DET A vypocet determinantu"
6070 ? "HOD A vypocet hodnosti"
6080 IF INKEY$="" THEN 6080
6090 CLS:POSITION 4,3
6100 ? "****** RIDICI PRIKAZY *******"
6110 ? "DECLARE A,R,S deklaruje matici A typu R,S"
6120 ? "ERASE A zrusi matici A"
6130 ? "INPUT A vlozeni hodnot"
6140 ? "PRINT A tisk matice"
6150 ? "DUMP tisk seznamu dek- larovanych matic"
6160 ? "CLEAR zruseni vsech matic"
6170 ? "SAVE nahrava matice"
6180 ? "LOAD opak SAVE"
6190 ? "END konci praci prog- ramu a maze jej"
6200 ?:? "Upozorneni!":? " zpusobi restart systemu!"
6210 IF INKEY$="" THEN 6210
6220 CLS:POKE 82,1:POSITION 1,2:POKE 752,0
6230 ENDPROC
References
Listing downloads
Copyright holder
