home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib26b.dsk / SUBR.MAST.DEMO1.bas < prev    next >
BASIC Source File  |  2023-02-26  |  5KB  |  79 lines

  1. 10  REM **********************
  2. 20  REM *  SUBR.MAST.DEMO1   *
  3. 30  REM * COPYRIGHT (C) 1985 *
  4. 40  REM * BY MICROSPARC, INC *
  5. 50  REM * CONCORD, MA  01742 *
  6. 60  REM **********************
  7. 70  IF  PEEK(104) < >17  THEN  POKE 103,44: POKE 104,17: POKE 4395,0: PRINT  CHR$(4)"RUN SUBR.MAST.DEMO1"
  8. 80  IF  PEEK(2304) < >32  THEN  PRINT  CHR$(4)"BLOAD SUBR.MASTER"
  9. 90 SUB1 = 3141:RET = SUB1:EXIT = 4058
  10. 100  HOME : VTAB 12: HTAB 3: PRINT "DEMONSTRATION OF SUBROUTINE MASTER": HTAB 6: PRINT "BY CEM KANER AND JOHN VOKEY": PRINT " COPYRIGHT (C) 1985 BY MICROSPARC, INC.": CALL RET,"TO CONTINUE": HOME 
  11. 110  HOME : INVERSE : PRINT "DEMONSTRATION OF PARAMETER PASSING": NORMAL 
  12. 120  PRINT : PRINT "THE VALUES OF THE VARIABLES IN THE": PRINT "CALL STATEMENT ARE PASSED TO THE": PRINT "CORRESPONDING VARIABLES IN THE": PRINT "DEF STATEMENT:": LIST 350: LIST 390
  13. 130  PRINT : PRINT "THE VALUES OF THE VARIABLES IN THE": PRINT "DEF STATEMENT ARE PASSED BACK TO THE": PRINT "CORRESPONDING VARIABLES IN THE": PRINT "CALL STATEMENT."
  14. 140  CALL RET,"FOR LISTING": HOME : INVERSE : PRINT "LISTING OF PARAMETER PASSING DEMO:": NORMAL : PRINT : LIST 330,430
  15. 150  CALL RET,"TO RUN PROGRAM": HOME : INVERSE : PRINT "PARAMETER PASSING DEMO": NORMAL : GOSUB 330: CALL RET,"FOR NEXT DEMO"
  16. 160  HOME : INVERSE : PRINT "DEMONSTRATION OF LOCAL VARIABLES": NORMAL 
  17. 170  PRINT : PRINT "EACH VARIABLE IN THE DEF STATEMENT": PRINT "IS A LOCAL VARIABLE, DISTINCT FROM": PRINT "VARIABLES OF THE SAME NAME IN THE MAIN": PRINT "PROGRAM."
  18. 180  PRINT : PRINT "THE LOCAL STATEMENT CREATES ADDITIONAL": PRINT "LOCAL VARIABLES THAT ARE DISTINCT": PRINT "FROM MAIN PROGRAM VARIABLES."
  19. 190  LIST 510
  20. 200  CALL RET,"TO LIST PROGRAM": HOME : INVERSE : PRINT "LISTING OF DEMO2": NORMAL : LIST 440,540
  21. 210  CALL RET,"TO RUN PROGRAM": HOME : INVERSE : PRINT "LOCAL VARIABLE DEMO": NORMAL : GOSUB 440
  22. 220  CALL RET,"FOR NEXT DEMO"
  23. 230  HOME : INVERSE : PRINT "EXPRESSION PASSING DEMO": NORMAL : PRINT : PRINT "EXPRESSIONS MAY BE USED IN THE": PRINT "CALL STATEMENT:": LIST 570
  24. 240  PRINT "VARIABLES INCLUDED IN EXPRESSIONS": PRINT "ARE NOT AFFECTED, EVEN IF THE": PRINT "SUBROUTINE CHANGES THE VALUE OF THE": PRINT "CORRESPONDING VARIABLE IN THE": PRINT "DEF STATEMENT."
  25. 250  CALL RET,"TO LIST PROGRAM": HOME : INVERSE : PRINT "LISTING OF DEMO3": NORMAL : LIST 550,650
  26. 260  CALL RET,"TO RUN PROGRAM": HOME : INVERSE : PRINT "EXPRESSION PASSING DEMO": NORMAL : GOSUB 550
  27. 270  CALL RET,"FOR NEXT DEMO"
  28. 280  HOME : INVERSE : PRINT "DEMONSTRATION OF PASSING STRINGS": NORMAL : PRINT : PRINT "STRING VARIABLES AND STRING LITERALS": PRINT "ARE HANDLED IN THE SAME WAY AS": PRINT "NUMERICS.": LIST 680: LIST 720
  29. 290  CALL RET,"FOR LISTING": HOME : INVERSE : PRINT "LISTING OF DEMO4": NORMAL : LIST 660,760
  30. 300  CALL RET,"TO RUN PROGRAM": HOME : INVERSE : PRINT "STRING PASSING DEMO": NORMAL : GOSUB 660
  31. 310  CALL RET,"TO QUIT": HOME 
  32. 320  END 
  33. 330  REM  PARAMETER PASSING DEMO
  34. 340 A = 5: PRINT : PRINT "A="A" BEFORE."
  35. 350  CALL SUB1,A
  36. 360  PRINT : PRINT "A="A" AFTER."
  37. 370  RETURN : REM *** RETURN FROM THIS DEMO
  38. 380  REM *** BEGINNING OF SUB1
  39. 390  DEF SUB1,N
  40. 400  PRINT : PRINT "N="N" (VALUE RECEIVED FROM A)"
  41. 410 N = N *10: PRINT : PRINT "VALUE OF N CHANGED TO "N"."
  42. 420  CALL EXIT,SUB1
  43. 430  REM  *** END OF SUB1
  44. 440  REM  LOCAL VARIABLE DEMO
  45. 450 A = 14:B = 34: PRINT : PRINT "BEFORE:": PRINT "A="A" AND B="B"  (GLOBAL VARIABLES)   
  46. 460  CALL SUB2,A
  47. 470  PRINT : PRINT "AFTER:": PRINT "A="A" AND B="B"  (GLOBAL VARIABLES)   
  48. 480  RETURN : REM *** RETURN FROM THIS DEMO
  49. 490  REM *** BEGINNING OF SUB2
  50. 500  DEF SUB2,B
  51. 510 LOCAL,A
  52. 520 A = 4.52: PRINT : PRINT "DURING:": PRINT "A="A" AND B="B"  (LOCAL VARIABLES) 
  53. 530  CALL EXIT,SUB2
  54. 540  REM *** END OF SUB2
  55. 550  REM  EXPRESSION DEMO
  56. 560 A = 2: PRINT : PRINT "BEFORE:": PRINT "A="A
  57. 570  CALL SUB3,A +5
  58. 580  PRINT : PRINT "AFTER:": PRINT "A="A
  59. 590  RETURN : REM  RETURN FROM THIS DEMO
  60. 600  REM *** BEGINNING OF SUB3
  61. 610  DEF SUB3,N
  62. 620  PRINT : PRINT "N="N"  (RECEIVED FROM MAIN)
  63. 630 N = N *10: PRINT "N="N"  (CHANGED IN SUB3)
  64. 640  CALL EXIT,SUB3
  65. 650  REM *** END OF SUB3
  66. 660  REM  STRING DEMO
  67. 670 A$ = "ABC": PRINT : PRINT "BEFORE:": PRINT "A$=" CHR$(34)A$ CHR$(34)
  68. 680  CALL SUB4,A$
  69. 690  PRINT : PRINT "AFTER:": PRINT "A$=" CHR$(34)A$ CHR$(34)
  70. 700  RETURN 
  71. 710  REM *** BEGINNING OF SUB4
  72. 720  DEF SUB4,X$
  73. 730  PRINT : PRINT "X$=" CHR$(34)X$ CHR$(34)"  (RECEIVED BY SUB4) "
  74. 740 X$ = "-*-" +X$ +"-*-"
  75. 750  CALL EXIT,SUB4
  76. 760  REM *** END OF SUB4
  77. 770  DEF RET,MS$
  78. 780 LOCAL,Z$
  79. 790  VTAB 23: HTAB 1: PRINT "PRESS <RETURN> "MS$;: GET Z$: CALL EXIT,RET