Atari/HDISK/BASIC/DIMEXAMP.BAS

38 lines
1.1 KiB
QBasic

1 REM DIMENSION DUMMY STRING
2 DIM DUMMY$(1)
3 REM DIMENSION THE APRAYS AND STRINGS
4 REM WHICH WILL NEED CLEARING
5 DIM A1(1),A2(1)
6 CLR :REM CLEAR THE VARIABLES
7 N=3:REM NUMBER OF VARIABLES JUST DIMENSIONED
8 REM INCLUDING DUMMY$
9 REM YOUR PROGRAM MAY BEGIN HERE
100 REM HERE IS AN EXAMPLE OF HOW TO
110 REM USE THE UNDIMENSION ROUTINE
120 DIM TEST$(20):TEST$="I'M STILL HERE? "
130 DIM DUMMY$(1),A1(50,10)
140 A1(50,10)=1:? A1(50,10),TEST$
150 REM EXECUTE UNDIMENSION ROUTINE
160 LINE=170:REM 1020
170 DIM DUMMY$(1),A2(500)
180 A2(500)=2:? A2(500),TEST$
190 END
200 REM
1000 REM UNDIMENSION ROUTINE
1010 REM SAVE CURRENT POINTER VALUES
1020 S136=PEEK(136):S137=PEEK(137)
1030 S140=PEEK(140):S141=PEEK(141)
1040 REM MOVE END OF VARIABLES
1050 T1=PEEK(134)+8*N:T2=PEEK(135)
1060 IF T1>255 THEN T2=T2+1:T1=T1-256
1070 POKE 136,T1:POKE 137,T2
1080 REM MOVE BEGINNING OF ARRAYS
1090 T2=INT(ADR(DUMMY$)/256)
1100 T1=ADR(DUMMY$)-T2*256
1110 POKE 140,T1:POKE 141,T2
1120 CLR :REM CLEAR THE ARRAYS
1130 REM RESTORE POINTERS AND RETURN
1140 POKE 136,S136:POKE 137,S137
1150 POKE 140,S140:POKE 141,S141
1160 REM LINE