home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nibble Magazine
/
nib32b.dsk
/
ARRAY.DEMO.bas
< prev
next >
Wrap
BASIC Source File
|
2023-02-26
|
3KB
|
51 lines
10 REM ************************
20 REM * ARRAY.DEMO *
30 REM * BY PAUL NICK *
40 REM * COPYRIGHT (C) 1987 *
50 REM * BY MICROSPARC, INC. *
60 REM * CONCORD, MA 01742 *
70 REM ************************
80 HIMEM: 36096
90 TEXT : HOME : NORMAL : VTAB 5: PRINT "ARRAY.DEMO": PRINT "BY PAUL NICK": PRINT "COPYRIGHT 1987 BY MICROSPARC, INC.": ONERR GOTO 410
100 PRINT CHR$(4)"BLOAD ARRAY.DYN": CALL 37120
110 PRINT CHR$(4)"PR#0": POKE 216,0
120 VTAB 22: PRINT "PRESS <RETURN> TO CONTINUE";: POKE -16368,0: GET X$: PRINT X$: POKE -16368,0
130 A = 5:B = 5: DIM A%(A,B): FOR X = 0 TO A: FOR Y = 0 TO B:A%(X,Y) = X *10 +Y: NEXT Y,X: REM ASSIGN ARBITRARY VALUES TO ARRAY ELEMENTS.
140 TEXT : HOME : HTAB 10: PRINT "COLUMNS": PRINT : FOR Y = 0 TO B: PRINT TAB( Y *3 +6);Y;: NEXT Y
150 PRINT : VTAB 5: FOR X = 0 TO A: PRINT " ";X;"-";
160 FOR Y = 0 TO B: PRINT TAB( Y *3 +6);A%(X,Y);: NEXT Y
170 PRINT : NEXT X
180 VTAB 7: HTAB 1: PRINT "R";: VTAB 8: HTAB 1: PRINT "O";: VTAB 9: HTAB 1: PRINT "W";: VTAB 10: HTAB 1: PRINT "S";
190 POKE 34,19
200 PRINT : VTAB 20: PRINT "D)ELETE, I)NSERT, OR Q)UIT";
210 INPUT X$: IF X$ < >"D" AND X$ < >"I" AND X$ < >"Q" THEN PRINT CHR$(7);: GOTO 200
220 IF X$ = "Q" THEN TEXT : HOME : END
230 VTAB 21: INPUT "WHICH DIMENSION: R)OW C)OL ?";D$
240 IF D$ = "R" THEN D = 1: GOTO 270
250 IF D$ = "C" THEN D = 2: GOTO 270
260 GOTO 230
270 IF X$ = "D" THEN 350
280 INPUT "INSERT AT?";PLACE
290 VTAB 23: INPUT "HOW MANY ROWS/COLUMNS?";NU$:NUMBER = VAL(NU$): IF NUMBER <1 THEN 290
300 FLAG = 0: IF D = 1 THEN GOSUB 420: GOTO 320
310 GOSUB 470
320 IF FLAG THEN 200
330 & FREA%,D,PLACE,NUMBER: IF D = 1 THEN A = A +NUMBER: GOTO 140
340 B = B +NUMBER: GOTO 140
350 INPUT "DELETE FROM?";ST$:START = VAL(ST$): INPUT "TO?";F$:FINISH = VAL(F$)
360 FLAG = 0: IF D = 1 THEN GOSUB 440: GOTO 380
370 GOSUB 490
380 IF FLAG THEN 200
390 & DEL A%,D,START TO FINISH: IF D = 1 THEN A = A -(FINISH -START +1): GOTO 140
400 B = B -(FINISH -START +1): GOTO 140
410 HOME : VTAB 5: PRINT "ARRAY.DYN FILE MUST BE ON THIS DISK.": END
420 HOME : IF A +NUMBER >10 THEN VTAB 21:FLAG = 1: PRINT CHR$(7);"MAX 11 ROWS, PLEASE"
430 RETURN
440 HOME : IF START >A OR FINISH >A OR FINISH <START THEN VTAB 21:FLAG = 1: PRINT CHR$(7);"OUT OF RANGE": RETURN
450 IF A -(FINISH -START +1) <0 THEN VTAB 21:FLAG = 1: PRINT CHR$(7)"ZERO DIMENSION NOT ALLOWED"
460 RETURN
470 HOME : IF B +NUMBER >10 THEN VTAB 21:FLAG = 1: PRINT CHR$(7);"MAX 11 COLUMNS, PLEASE"
480 RETURN
490 HOME : IF START >B OR FINISH >B OR FINISH <START THEN VTAB 21:FLAG = 1: PRINT CHR$(7);"OUT OF RANGE": RETURN
500 IF B -(FINISH -START +1) <0 THEN VTAB 21:FLAG = 1: PRINT CHR$(7)"ZERO DIMENSION NOT ALLOWED"
510 RETURN