home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib35b.dsk / AUA.DEMO.bas < prev    next >
BASIC Source File  |  2023-02-26  |  5KB  |  105 lines

  1. 10  REM **********************
  2. 20  REM *      AUA.DEMO      *
  3. 30  REM * BY DEAN PICKERING  *
  4. 40  REM * COPYRIGHT (C) 1988 *
  5. 50  REM * BY MICROSPARC, INC *
  6. 60  REM * CONCORD, MA  01742 *
  7. 70  REM **********************
  8. 80  GOTO 60000: REM  ATTACH THE CODE IF NECESSARY
  9. 90  REM  LINES 100-110 MUST BE EXECUTED AFTER ANY PROGRAM
  10. 100  REM  EDITING TO UPDATE THE AMPERSAND VECTOR
  11. 110 BASFIN =  PEEK(175) +256 * PEEK(176)
  12. 120 DEC =  PEEK(BASFIN -1): CALL BASFIN -DEC
  13. 130 :
  14. 140  REM --- "USING" WITH $ AND COMMAS
  15. 150  POKE 216,0: HOME : PRINT "PRINT USING DEMO, PART I": PRINT "USING DOLLARS AND COMMAS": POKE 34,6: REM - FREEZE HEADER
  16. 160  HOME 
  17. 170  PRINT : PRINT : PRINT "ENTER YOUR ANNUAL INCOME"
  18. 180  PRINT "AND PRESS <RETURN>"
  19. 190  PRINT : PRINT "REMEMBER: APPLESOFT INPUT DOESN'T": PRINT "ALLOW COMMAS!": PRINT 
  20. 200  PRINT "PRESS <RETURN> ALONE TO CONTINUE"
  21. 210  PRINT : INPUT "";IN$: IF IN$ = "" GOTO 290
  22. 220  PRINT : PRINT "YOUR INCOME IS";: &  PRINT $,20,2, VAL(IN$): PRINT 
  23. 230  PRINT "IN A LINE OF TEXT WITH NO LEADING"
  24. 240  PRINT "SPACES IT IS ";: &  PRINT $,0,2, VAL(IN$);
  25. 250  PRINT " BEFORE TAX.": PRINT 
  26. 260  PRINT "PRESS <RETURN> TO CONTINUE";: GET A$: GOTO 160
  27. 270 :
  28. 280  REM --- "USING" WITH TABULATED FIGURES
  29. 290  TEXT : HOME : PRINT "PRINT USING DEMO, PART II": PRINT "TABULATED FIGURES": POKE 34,6: PRINT : PRINT 
  30. 300  REM 2, 5, 5, AND 8 SPACES IN NEXT
  31. 310  PRINT "  X     X * X     SQR (X)        1 / X"
  32. 320  REM 1, 3, 3, AND 6 SPACES IN NEXT
  33. 330  PRINT " ---   -------   ---------      -------"
  34. 340  FOR X = 1 TO 10: &  PRINT 3,0,X;: &  PRINT 8,0,X *X;
  35. 350  &  PRINT 7,6, SQR(X);1/X: NEXT : PRINT 
  36. 360  PRINT "PRESS <RETURN> TO CONTINUE";: GET A$: TEXT : REM   - UNFREEZE HEADER
  37. 370 :
  38. 380  REM --- "RESTORE" DEMO
  39. 390  DATA "TOM",DICK,"HARRY"
  40. 400  HOME : PRINT "RESTORE TO SELECTED DATA LIST": PRINT : PRINT 
  41. 410  PRINT "ARE YOU MALE OR FEMALE? (M/F)";
  42. 420  GET SEX$: IF SEX$ = "M"  OR SEX$ =  CHR$(109) GOTO 450
  43. 430  IF SEX$ = "F"  OR SEX$ =  CHR$(102) GOTO 460
  44. 440  GOTO 420
  45. 450  &  RESTORE  GOTO 390: GOTO 470
  46. 460  &  RESTORE  GOTO 510
  47. 470  PRINT : FOR I = 1 TO 3: READ NAME$(I): NEXT 
  48. 480  PRINT : PRINT "MAYBE YOUR NAME IS ";
  49. 490  PRINT NAME$(1);", "NAME$(2)" OR ";NAME$(3): PRINT 
  50. 500  PRINT "PRESS <RETURN> TO CONTINUE";: GET A$
  51. 510  DATA "MARY",ELLEN,"ANNE"
  52. 520 :
  53. 530  REM --- "INPUT ANYTHING" DEMO
  54. 540  HOME : PRINT "INPUT ANYTHING DEMO": PRINT 
  55. 550  PRINT "AS FOR APPLESOFT BUT WILL ACCEPT"
  56. 560  PRINT "COMMA, COLON, QUOTE ETC.": POKE 34,10
  57. 570  HOME : PRINT "INPUT A LINE AND PRESS <RETURN>"
  58. 580  PRINT "PRESS <RETURN> ONLY TO CONTINUE": PRINT 
  59. 590  &  INPUT LINE$: IF LINE$ = "" GOTO 620
  60. 600  PRINT : PRINT "YOUR LINE WAS ";LINE$
  61. 610  PRINT : PRINT "PRESS <RETURN> TO CONTINUE";: GET A$: GOTO 570
  62. 620  TEXT : REM - ERROR ON NULL INPUT, EXIT
  63. 630 :
  64. 640  REM --- "RESUME" DEMO
  65. 650  ONERR  GOTO 760
  66. 660  HOME : PRINT "RESUME NEXT & RESUME GOTO DEMO"
  67. 670  PRINT : PRINT "INPUT A NUMBER AND ITS"
  68. 680  PRINT "RECIPROCAL WILL BE PRINTED"
  69. 690  PRINT : PRINT "FORCE ERRORS BY ENTERING ZERO"
  70. 700  PRINT "PRESS <RETURN> ONLY TO QUIT": POKE 34,10
  71. 710  HOME : INPUT "ENTER A NUMBER ";X$: IF X$ = ""  THEN 880
  72. 720 X =  VAL(X$):Y = 1/X: IF X = 0  THEN  PRINT  CHR$(7): GOTO 710
  73. 730  PRINT : PRINT "RECIPROCAL IS ";Y: GOTO 860
  74. 740 :
  75. 750  REM ----- ERROR HANDLING -----
  76. 760 EN =  PEEK(222):EL =  PEEK(218) +256 * PEEK(219)
  77. 770  REM --- DIVISION BY ZERO ERROR
  78. 780  IF EN = 133  THEN  &  RESUME  NEXT 
  79. 790  REM --- NULL LINE INPUT ERROR
  80. 800  IF EN = 254  THEN  &  RESUME  GOTO 850
  81. 810  REM --- CNTL-C INTERRUPT ERROR
  82. 820  IF EN = 255  THEN  &  RESUME  GOTO 850
  83. 830  REM --- ANY OTHER ERROR
  84. 840  PRINT "ERROR "EN" IN LINE "EL: END 
  85. 850  PRINT : PRINT : PRINT  CHR$(7)"NO NUMBER INPUT"
  86. 860  PRINT : PRINT "PRESS <RETURN> TO RESTART ";: GET A$: GOTO 710
  87. 870 :
  88. 880  TEXT : HOME : VTAB 23: END 
  89. 60000  REM ***** ADD CODE
  90. 60010  ONERR  GOTO 60080
  91. 60020 E =  PEEK(175) +256 * PEEK(176)
  92. 60030  IF  PEEK(E -2)  THEN  POKE 216,0: GOTO 110: REM  CODE ALREADY PRESENT
  93. 60040  PRINT  CHR$(4)"BLOAD AUA,A";E
  94. 60050  REM  ADJUST NEXT LINE IF CODE LENGTH NOT 544
  95. 60060  LOMEM:  PEEK(175) +256 * PEEK(176) +544
  96. 60070  POKE 175, PEEK(105): POKE 176, PEEK(106): CLEAR : RUN 
  97. 60080  HOME : VTAB 23: HTAB 1: PRINT "ERROR OCCURRED WHILE": PRINT "BLOADING AUA": END 
  98. 60090 :
  99. 61000  REM ***** REMOVE CODE
  100. 61010 X =  PEEK(175) +256 * PEEK(176)
  101. 61020  REM ADJUST NEXT TWO LINES IF CODE NOT 22 AND 544
  102. 61030  IF  PEEK(X -1) < >22  THEN  PRINT "CODE NOT PRESENT": END 
  103. 61040 X = X -544:H =  INT(X/256):L = X -H *256
  104. 61050  POKE 175,L: POKE 176,H
  105. 61060  POKE 105, PEEK(175): POKE 106, PEEK(176): CLEAR : END