Variable A

Date: 198x
Type: Program
Platform(s): TS 2068

Displays the contents of the variable area.

Appears on

Gallery

Source Code

    1 PAPER 0: BORDER 0: INK 9
    5 DIM b(5)
   10 LET p=PEEK 23627+256*PEEK 23628
   20 PRINT p;TAB 6;: LET p1=PEEK p
   25 IF p1=128 THEN PRINT TAB 7;"END OF VARIABLE AREA": STOP 
   30 LET p2=INT (p1/32)
   35 IF p2=3 THEN GO TO 100: REM number (single-letter name)
   40 IF p2=5 THEN GO TO 200: REM number (multi-character name)
   45 IF p2=4 THEN GO TO 300: REM number array
   50 IF p2=7 THEN GO TO 400: REM loop control
   55 IF p2=2 THEN GO TO 500: REM string
   60 IF p2=6 THEN GO TO 600: REM string aray
   70 STOP : REM error if this line is reached
  100 REM number:-
  105 PRINT CHR$ p1;
  110 GO SUB 800
  115 PRINT TAB 16;n
  120 LET p=p+1: GO TO 20
  200 PRINT CHR$ (p1-64);: REM first letter
  210 LET p=p+1
  220 LET p1=PEEK p
  230 IF p1>=128 THEN GO TO 260
  240 PRINT CHR$ p1;: REM middle letters (if any)
  250 GO TO 210
  260 PRINT CHR$ (p1-128);: REM last letter
  270 GO TO 110
  300 PRINT CHR$ (p1-32);"(";
  305 GO SUB 900
  310 FOR k=1 TO t
  315 GO SUB 800
  320 PRINT TAB 3;"element #";k;TAB 16;n
  325 NEXT k
  330 LET p=p+1: GO TO 20
  400 PRINT CHR$ (p1-128);
  410 GO SUB 800
  420 PRINT TAB 9;"(LOOP)";TAB 16;n;TAB 22;"Current"
  425 GO SUB 800
  430 PRINT TAB 16;n;TAB 22;"Limit (TO)"
  435 GO SUB 800
  440 PRINT TAB 16;n;TAB 22;"STEP"
  450 LET l=PEEK (p+1)+256*PEEK (p+2): LET s=PEEK (p+3): LET p=p+4
  455 PRINT TAB 16;l;TAB 22;"Line No."
  460 PRINT TAB 16;s;TAB 22;"Statement"
  465 GO TO 20
  500 PRINT CHR$ p1;"$";TAB 16;
  510 LET l=PEEK (p+1)+256*PEEK (p+2): LET p=p+2
  520 FOR j=1 TO l
  530 PRINT CHR$ PEEK (p+j);
  540 NEXT j: PRINT 
  550 LET p=p+j: GO TO 20
  600 PRINT CHR$ (p1-128);"$(";
  605 GO SUB 900
  610 FOR k=1 TO t
  620 LET p=p+1
  630 PRINT TAB 3;"element #";k;TAB 16;CHR$ PEEK p
  640 NEXT k
  650 LET p=p+1: GO TO 20
  800 REM integer
  805 FOR j=1 TO 5
  810 LET p=p+1: LET b(j)=PEEK p
  815 NEXT j
  820 IF b(1) THEN GO TO 845
  825 LET n=b(3)+256*b(4): IF b(2)=255 THEN LET n=n-65536
  830 RETURN 
  845 REM floating point
  850 LET m=1: IF b(2)<128 THEN LET m=0: LET b(2)=b(2)+128
  855 LET n=0: FOR j=2 TO 5: LET n=n+b(j)/256^(j-1): NEXT j
  860 LET b(1)=b(1)-128
  865 LET n=n*2^b(1)
  870 IF m THEN LET n=-n
  875 RETURN 
  900 REM arrays
  905 LET p1=PEEK (p+1)+256*PEEK (p+2): LET p=p+3
  910 LET d=PEEK p: LET p=p+1
  915 LET t=1: FOR j=1 TO d
  920 LET el=PEEK p+256*PEEK (p+1): LET t=t*el: PRINT el
  925 IF d<>1 AND j<>d THEN PRINT ",";
  930 LET p=p+2: NEXT j: PRINT ")"
  940 LET p=p-1
  945 RETURN 
 9998 SAVE "VARIABLE A" LINE 1

People

No people associated with this content.

Scroll to Top