home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib32b.dsk / ARRAY.DEMO.bas < prev    next >
BASIC Source File  |  2023-02-26  |  3KB  |  51 lines

  1. 10  REM  ************************
  2. 20  REM  * ARRAY.DEMO           *
  3. 30  REM  * BY PAUL NICK         *
  4. 40  REM  * COPYRIGHT (C) 1987   *
  5. 50  REM  * BY MICROSPARC, INC.  *
  6. 60  REM  * CONCORD, MA  01742   *
  7. 70  REM  ************************
  8. 80  HIMEM: 36096
  9. 90  TEXT : HOME : NORMAL : VTAB 5: PRINT "ARRAY.DEMO": PRINT "BY PAUL NICK": PRINT "COPYRIGHT 1987 BY MICROSPARC, INC.": ONERR  GOTO 410
  10. 100  PRINT  CHR$(4)"BLOAD ARRAY.DYN": CALL 37120
  11. 110  PRINT  CHR$(4)"PR#0": POKE 216,0
  12. 120  VTAB 22: PRINT "PRESS <RETURN> TO CONTINUE";: POKE  -16368,0: GET X$: PRINT X$: POKE  -16368,0
  13. 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.
  14. 140  TEXT : HOME : HTAB 10: PRINT "COLUMNS": PRINT : FOR Y = 0 TO B: PRINT  TAB( Y *3 +6);Y;: NEXT Y
  15. 150  PRINT : VTAB 5: FOR X = 0 TO A: PRINT " ";X;"-";
  16. 160  FOR Y = 0 TO B: PRINT  TAB( Y *3 +6);A%(X,Y);: NEXT Y
  17. 170  PRINT : NEXT X
  18. 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";
  19. 190  POKE 34,19
  20. 200  PRINT : VTAB 20: PRINT "D)ELETE, I)NSERT, OR Q)UIT";
  21. 210  INPUT X$: IF X$ < >"D"  AND X$ < >"I"  AND X$ < >"Q"  THEN  PRINT  CHR$(7);: GOTO 200
  22. 220  IF X$ = "Q"  THEN  TEXT : HOME : END 
  23. 230  VTAB 21: INPUT "WHICH DIMENSION: R)OW C)OL ?";D$
  24. 240  IF D$ = "R"  THEN D = 1: GOTO 270
  25. 250  IF D$ = "C"  THEN D = 2: GOTO 270
  26. 260  GOTO 230
  27. 270  IF X$ = "D"  THEN 350
  28. 280  INPUT "INSERT AT?";PLACE
  29. 290  VTAB 23: INPUT "HOW MANY ROWS/COLUMNS?";NU$:NUMBER =  VAL(NU$): IF NUMBER <1  THEN 290
  30. 300 FLAG = 0: IF D = 1  THEN  GOSUB 420: GOTO 320
  31. 310  GOSUB 470
  32. 320  IF FLAG  THEN 200
  33. 330  &  FREA%,D,PLACE,NUMBER: IF D = 1  THEN A = A +NUMBER: GOTO 140
  34. 340 B = B +NUMBER: GOTO 140
  35. 350  INPUT "DELETE FROM?";ST$:START =  VAL(ST$): INPUT "TO?";F$:FINISH =  VAL(F$)
  36. 360 FLAG = 0: IF D = 1  THEN  GOSUB 440: GOTO 380
  37. 370  GOSUB 490
  38. 380  IF FLAG  THEN 200
  39. 390  &  DEL A%,D,START TO FINISH: IF D = 1  THEN A = A -(FINISH -START +1): GOTO 140
  40. 400 B = B -(FINISH -START +1): GOTO 140
  41. 410  HOME : VTAB 5: PRINT "ARRAY.DYN FILE MUST BE ON THIS DISK.": END 
  42. 420  HOME : IF A +NUMBER >10  THEN  VTAB 21:FLAG = 1: PRINT  CHR$(7);"MAX 11 ROWS, PLEASE"
  43. 430  RETURN 
  44. 440  HOME : IF START >A  OR FINISH >A  OR FINISH <START  THEN  VTAB 21:FLAG = 1: PRINT  CHR$(7);"OUT OF RANGE": RETURN 
  45. 450  IF A -(FINISH -START +1) <0  THEN  VTAB 21:FLAG = 1: PRINT  CHR$(7)"ZERO DIMENSION NOT ALLOWED"
  46. 460  RETURN 
  47. 470  HOME : IF B +NUMBER >10  THEN  VTAB 21:FLAG = 1: PRINT  CHR$(7);"MAX 11 COLUMNS, PLEASE"
  48. 480  RETURN 
  49. 490  HOME : IF START >B  OR FINISH >B  OR FINISH <START  THEN  VTAB 21:FLAG = 1: PRINT  CHR$(7);"OUT OF RANGE": RETURN 
  50. 500  IF B -(FINISH -START +1) <0  THEN  VTAB 21:FLAG = 1: PRINT  CHR$(7)"ZERO DIMENSION NOT ALLOWED"
  51. 510  RETURN