RosettaCodeData/Task/Variable-size-Get/Applesoft-BASIC/variable-size-get.basic

26 lines
1.6 KiB
Plaintext

100 PRINT "SIZE OF INTEGER I% IS ";:I% = I%: GOSUB 240
110 PRINT "SIZE OF FLOAT I IS ";:I = I: GOSUB 240
120 PRINT "SIZE OF STRING I$ IS ";:I$ = I$: GOSUB 240
130 PRINT " LEN OF STRING I$ IS " LEN (I$)
140 PRINT "SIZE OF FLOAT ARG N IS ";: DEF FN I(N) = 0: GOSUB 240
150 PRINT "SIZE OF FUNCTION FN I IS ";: PRINT MID$ ( STR$ ( FN I(0)),1,0);: GOSUB 240
160 PRINT "ARRAYS:"
170 PRINT "SIZE OF FLOAT I(1) IS ";:I(1) = I(1): GOSUB 240
180 PRINT "SIZE OF INTEGER I%(2) IS ";:I%(2) = I%(2): GOSUB 240
190 PRINT "SIZE OF STRING I$(3) IS ";:I$(3) = I$(3): GOSUB 240
200 PRINT " LEN OF STRING I$(3) IS " LEN (I$(3))
210 PRINT "SIZE OF STRING I$(4) IS ";:I$(4) = "HELLO, WORLD!": GOSUB 240
220 PRINT " LEN OF STRING I$(4) IS " LEN (I$(4))
230 END
240 GOSUB 250: PRINT PEEK (236) + PEEK (237) * 256: RETURN
250 POKE 236,12: POKE 237,0: IF PEEK (129) > 127 AND PEEK (130) < 128 THEN RETURN
260 POKE 236,5
270 IF PEEK (129) < 128 AND PEEK (130) > 127 GOTO 310STR
280 IF PEEK (131) + PEEK (132) * 256 < PEEK (107) + PEEK (108) * 256 THEN RETURN
290 IF PEEK (129) < 128 AND PEEK (130) < 128 THEN RETURN
300 POKE 236,2: IF PEEK (129) > 127 AND PEEK (130) > 127 THEN RETURN
310 IF PEEK (131) + PEEK (132) * 256 > = PEEK (107) + PEEK (108) * 256 THEN POKE 236,3
320 IF PEEK ( PEEK (131) + PEEK (132) * 256) + PEEK (236) > 255 THEN POKE 237,1: POKE 236, PEEK ( PEEK (131) + PEEK (132) * 256) + PEEK (236) - 256: RETURN
330 POKE 236, PEEK ( PEEK (131) + PEEK (132) * 256) + PEEK (236)
340 RETURN