RosettaCodeData/Task/Array-length/Applesoft-BASIC/array-length.basic

35 lines
914 B
Plaintext

10 DIM A$(2)
20 A$(1) = "ORANGE"
30 A$(2) = "APPLE"
40 N$ = "A$": GOSUB 70: PRINT L$
60 PRINT
61 DIM A%(19,63,0),A3(4,5)
62 N$ = "A%": GOSUB 70: PRINT L$
63 N$ = "A3": GOSUB 70: PRINT L$
64 N$ = "COMMODORE"
65 GOSUB 70: PRINT L$: END
70 L$ = "":N0 = 0:N1 = 0
71 N0$ = LEFT$ (N$,1)
72 N1$ = MID$ (N$,2,2)
73 N1 = RIGHT$ (N$,1) = "$"
74 N0 = RIGHT$ (N$,1) = "%"
75 IF N0 THEN N1 = 1
76 I = LEN (N1$) - N1
77 N1$ = MID$ (N1$,1,I)
78 A = ASC (N1$ + CHR$ (0))
79 N1 = 128 * N1 + A
80 N0 = 128 * N0 + ASC (N0$)
90 DEF FN P(A) = PEEK (A) + PEEK (A + 1) * 256
100 I = FN P(109):A = FN P(107)
110 FOR A = A TO I STEP 0
128 IF PEEK (A) < > N0 OR PEEK (A + 1) < > N1 THEN A = A + FN P(A + 2): NEXT A: PRINT "ARRAY "N$" NOT FOUND": STOP
130 N0 = A + 4
140 N1 = N0 + FN P(N0) * 2
150 N0 = N0 + 2
160 FOR I = N1 TO N0 STEP - 2
170 L$ = L$ + STR$ ( FN P(I))
180 L$ = L$ + " ": NEXT I
190 RETURN