home *** CD-ROM | disk | FTP | other *** search
/ The CIA World Factbook 1992 / k3bimage.iso / sel / 04 / 0057 / sinstr.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1991-12-02  |  6.3 KB  |  136 lines

  1. 10  '==========================================================
  2. 20  '**               SUBTRACTING DECIMALS                   **
  3. 30  '**            By STAN GREENE  - 03/05/85                **
  4. 40  '**                   SINSTR/BAS                         **
  5. 50  '**     Copyright 1984 - MICROCOMPUTER WORKSHOPS         **
  6. 60  '==========================================================
  7. 70   DEFSTR A-B,F-I:DEFINT C,E,L,N-P,W-Z
  8. 80   X= VAL(MID$(TIME$,7,2)): RANDOMIZE X
  9. 90   COMMON GN,CJ,CBS,JC
  10. 100  REM  GN="STAN":WIDTH 40:KEY OFF:CJ=1:COLOR 7,CJ,CJ:KEY 7,"WIDTH 80"+CHR$(13):KEY 8,"COLOR 7,0,0"+CHR$(13):GOTO 190
  11. 115   IF CBS < 32 THEN CHAIN "CBS.BAS"
  12. 120   GOTO 190
  13. 130  GOSUB 30100
  14. 140  I=INKEY$:IF I= "" OR I= "%" OR I= CHR$(13) THEN 140 ELSE LOCATE ,,0:RETURN
  15. 150  LOCATE 23,5:PRINT "Press ";:COLOR CJ,7:PRINT"space bar";:COLOR 7,CJ:PRINT " to continue.";:GOSUB 30100
  16. 160  I=INKEY$:IF I <> " " THEN 160 ELSE RETURN
  17. 170  '***** INKEY$ ROUTINE FOR ADDITION ANSWERS
  18. 180  '***** BEGIN A PROBLEM
  19. 190  CLS:LOCATE 1,14:COLOR CJ,7:PRINT "Instructions";:COLOR 7,CJ
  20. 200  LOCATE 10,1:PRINT"Before you begin the problems, you will";
  21. 201  LOCATE 12,1:PRINT"be given three choices:";
  22. 202   LOCATE 14,6:PRINT"1. Borrowing (Yes/No)";
  23. 203   LOCATE 16,6:PRINT"2. Max. digits per number (2-6)";
  24. 204   LOCATE 18,6:PRINT"3. Number of problems (1-9)";:GOSUB 150
  25. 220  '** SCREEN #2
  26. 230  CLS:LOCATE 1,14:COLOR CJ,7:PRINT "Instructions";:COLOR 7,CJ:LOCATE 1,35:PRINT"#1";
  27. 240   LOCATE 5,16:PRINT "9 0 . 2 7 9 - 3 . 7 8";
  28. 250   LOCATE 7,14:PRINT STRING$(14,223);
  29. 260   LOCATE 8,20:PRINT ".";
  30. 270   LOCATE 10,20:COLOR CJ,7:PRINT CHR$(24);:COLOR 7,CJ
  31. 280   LOCATE 13,1:PRINT "A randomly chosen problem will then";
  32. 290   LOCATE 15,1:PRINT "appear.";:GOSUB 30100:GOSUB 150
  33. 295  '** SCREEN #3
  34. 300   LOCATE 5,27:PRINT "          ";:LOCATE 6,14:PRINT"-   3 . 7 8";:LOCATE 10,20:PRINT" ";
  35. 305   LOCATE 13,1:PRINT STRING$(36,32);
  36. 310   LOCATE 15,1:PRINT"After the lining-up stage, the problem";:LOCATE 17,1:PRINT"will be as above. You will then be ready";:LOCATE 19,1:PRINT"to start subtracting.";:GOSUB 30100:GOSUB 150
  37. 315  '** SCREEN #4
  38. 320   LOCATE 15,1:PRINT "You will be able to fill in any trailing";
  39. 330   LOCATE 17,1:PRINT "zeroes in the problem by entering ";:COLOR CJ,7:PRINT"Z";:COLOR 7,CJ:PRINT".    ";:LOCATE 19,1:PRINT STRING$(25,32);
  40. 350   LOCATE 23,5:PRINT "          Enter ";:COLOR CJ,7:PRINT"Z";:COLOR 7,CJ:PRINT".           ";:GOSUB 30100
  41. 370   I=INKEY$: IF I <> "Z" THEN 370
  42. 371  '** SCREEN #5
  43. 380   LOCATE 6,26: PRINT "0";:LOCATE 8,26:PRINT CHR$(219);
  44. 390   LOCATE 13,1:PRINT"During the problem, a `cursor' will";
  45. 430   LOCATE 15,1:PRINT"indicate where you are in the problem.  ";:LOCATE 17,1:PRINT STRING$(37,32);
  46. 431  LOCATE 23,5:PRINT "Press ";:COLOR CJ,7:PRINT"space bar";:COLOR 7,CJ:PRINT " to continue.";:LOCATE 8,26,1,0,7:GOSUB 30100
  47. 432  I=INKEY$:IF I <> " " THEN 432
  48. 435  '** SCREEN #6
  49. 440   LOCATE ,,0:GOSUB 840:LOCATE 12,1:PRINT"Now subtract ";:COLOR CJ,7:PRINT"0";:COLOR 7,CJ:PRINT" from ";:COLOR CJ,7:PRINT"9";:COLOR 7,CJ:PRINT".";
  50. 442   LOCATE 23,16:PRINT"Enter ";:COLOR CJ,7:PRINT"9";:COLOR 7,CJ:PRINT".";:LOCATE 8,26,1:GOSUB 30100
  51. 445  I=INKEY$:IF I <> "9" THEN 445
  52. 450   LOCATE 8,26,0:PRINT"9";:GOSUB 830:LOCATE 12,1:PRINT"The cursor is on the bottom row, but to";
  53. 455   LOCATE 14,1:PRINT"subtract ";:COLOR CJ,7:PRINT"8";:COLOR 7,CJ:PRINT" from ";:COLOR CJ,7:PRINT"7";:COLOR 7,CJ:PRINT", you must borrow.";:LOCATE 23,22:COLOR CJ,7:PRINT"B";:COLOR 7,CJ:LOCATE 8,24:PRINT CHR$(219);:GOSUB 30100
  54. 460  I=INKEY$:IF I<>"B" THEN 460
  55. 465   LOCATE,,0:GOSUB 830
  56. 470   LOCATE 12,1:PRINT"When you borrow, the cursor moves one";
  57. 475   LOCATE 14,1:PRINT"column to the left, overlaying the";
  58. 480   LOCATE 16,1:PRINT"digit that will be borrowed from, and";
  59. 500   LOCATE 18,1:PRINT"waits for you to enter the new digit for";
  60. 505   LOCATE 20,1:PRINT"that column. In this case this new digit";
  61. 510   LOCATE 22,1:PRINT"will be ";:COLOR CJ,7:PRINT"1";:COLOR 7,CJ:PRINT".";:LOCATE 23,22:COLOR CJ,7:PRINT"1";:COLOR 7,CJ:LOCATE 5,22,1:GOSUB 30100
  62. 515   I=INKEY$:IF I<>"1" THEN 515
  63. 520   LOCATE 5,22,0:PRINT"1";:GOSUB 830
  64. 525   LOCATE 12,1:PRINT"Now you must enter the carry which is ";:COLOR CJ,7:PRINT"1";:COLOR 7,CJ:PRINT".";
  65. 530   LOCATE 23,22:COLOR CJ,7:PRINT"1";:COLOR 7,CJ:LOCATE 4,23:PRINT CHR$(219);:GOSUB 30100
  66. 535   I=INKEY$:IF I<>"1" THEN 535
  67. 540   LOCATE 4,23,0:PRINT"1";:GOSUB 830
  68. 545   LOCATE 12,1:PRINT"Now that the borrow has been performed,";
  69. 550   LOCATE 14,1:PRINT"you can continue with the subtraction.";
  70. 555   LOCATE 16,1:PRINT"The two digits to subtract now are ";:COLOR CJ,7:PRINT"17";:COLOR 7,CJ
  71. 560   LOCATE 18,1:PRINT"and ";:COLOR CJ,7:PRINT"8";:COLOR 7,CJ:PRINT". Enter their difference.";
  72. 565   LOCATE 23,22:COLOR CJ,7:PRINT"9";:COLOR 7,CJ:LOCATE 8,24,1:GOSUB 30100
  73. 570   I=INKEY$:IF I<>"9" THEN 570
  74. 575   LOCATE 8,24,0:PRINT"9";:GOSUB 830
  75. 580   LOCATE 12,1:PRINT"Subtracting ";:COLOR CJ,7:PRINT"7";:COLOR 7,CJ:PRINT" from ";:COLOR CJ,7:PRINT"1";:COLOR 7,CJ:PRINT" requires";
  76. 585   LOCATE 14,1:PRINT"borrowing.";
  77. 600   LOCATE 23,22:COLOR CJ,7:PRINT"B";:COLOR 7,CJ:LOCATE 8,22:PRINT CHR$(219);:GOSUB 30100
  78. 605   I=INKEY$:IF I<>"B" THEN 605
  79. 610   LOCATE ,,0:GOSUB 830
  80. 615   LOCATE 12,1:PRINT"There is nothing to borrow from the ";:COLOR CJ,7:PRINT"0";:COLOR 7,CJ:PRINT",";
  81. 620   LOCATE 14,1:PRINT"so another borrow is needed.";
  82. 625   LOCATE 23,22:COLOR CJ,7:PRINT"B";:COLOR 7,CJ:LOCATE 5,18,1:GOSUB 30100
  83. 630   I=INKEY$:IF I<>"B" THEN 630
  84. 635   LOCATE ,,0:GOSUB 830
  85. 640   LOCATE 12,1:PRINT"You are borrowing from ";:COLOR CJ,7:PRINT"9";:COLOR 7,CJ:PRINT". The new";
  86. 645   LOCATE 14,1:PRINT"digit to enter is ";:COLOR CJ,7:PRINT"8";:COLOR 7,CJ:PRINT".";
  87. 650   LOCATE 23,22:COLOR CJ,7:PRINT"8";:COLOR 7,CJ:LOCATE 5,16,1:GOSUB 30100
  88. 655   I=INKEY$:IF I<>"8" THEN 655
  89. 660   LOCATE 5,16,0:PRINT"8";:GOSUB 830
  90. 665   LOCATE 12,1:PRINT"Now enter the carry.";
  91. 670   LOCATE 23,22:COLOR CJ,7:PRINT"1";:COLOR 7,CJ:LOCATE 4,17:PRINT CHR$(219);:GOSUB 30100
  92. 675   I=INKEY$:IF I<>"1" THEN 675
  93. 680   LOCATE 4,17,0:PRINT"1";:GOSUB 830
  94. 685   LOCATE 12,1:PRINT"Now you can borrow from `10' instead of";
  95. 687   LOCATE 14,1:COLOR CJ,7:PRINT"1";:COLOR 7,CJ:PRINT". The new digit here will be ";:COLOR CJ,7:PRINT"9";:COLOR 7,CJ:PRINT".";
  96. 690   LOCATE 23,22:COLOR CJ,7:PRINT"9";:COLOR 7,CJ:LOCATE 5,18,1:GOSUB 30100
  97. 695   I=INKEY$:IF I<>"9" THEN 695
  98. 700   LOCATE 4,17,0:PRINT" ";:LOCATE 5,18:PRINT"9";:GOSUB 830
  99. 705   LOCATE 12,1:PRINT"Now enter the carry.";
  100. 710   LOCATE 23,22:COLOR CJ,7:PRINT"1";:COLOR 7,CJ:LOCATE 4,21:PRINT CHR$(219);:GOSUB 30100
  101. 715   I=INKEY$:IF I<>"1" THEN 715
  102. 720   LOCATE 4,21,0:PRINT"1";:GOSUB 830
  103. 725   LOCATE 12,1:PRINT"Now enter the difference between ";:COLOR CJ,7:PRINT"11";:COLOR 7,CJ
  104. 730   LOCATE 14,1:PRINT"and ";:COLOR CJ,7:PRINT"7";:COLOR 7,CJ:PRINT", which is ";:COLOR CJ,7:PRINT"4";:COLOR 7,CJ:PRINT".";
  105. 735   LOCATE 23,22:COLOR CJ,7:PRINT"4";:COLOR 7,CJ:LOCATE 8,22,1:GOSUB 30100
  106. 740   I=INKEY$:IF I<>"4" THEN 740
  107. 742   LOCATE 8,22,0:PRINT"4";:GOSUB 830
  108. 744   LOCATE 12,1:PRINT"Now enter the difference between ";:COLOR CJ,7:PRINT"9";:COLOR 7,CJ:PRINT" and";
  109. 746   LOCATE 14,1:COLOR CJ,7:PRINT"3";:COLOR 7,CJ:PRINT".";
  110. 748   LOCATE 23,22:COLOR CJ,7:PRINT"6";:COLOR 7,CJ:LOCATE 8,18:PRINT CHR$(219);:GOSUB 30100
  111. 750   I=INKEY$:IF I<>"6" THEN 750
  112. 752   LOCATE 8,18,0:PRINT"6";:GOSUB 830
  113. 754   LOCATE 12,1:PRINT"Finally, enter the difference between ";
  114. 756   LOCATE 14,1:COLOR CJ,7:PRINT"8";:COLOR 7,CJ:PRINT" and ";:COLOR CJ,7:PRINT"0";:COLOR 7,CJ:PRINT", which is ";:COLOR CJ,7:PRINT"8";:COLOR 7,CJ:PRINT".";
  115. 758   LOCATE 23,22:COLOR CJ,7:PRINT"8";:COLOR 7,CJ:LOCATE 8,16:PRINT CHR$(219);:GOSUB 30100
  116. 760   I=INKEY$:IF I<>"8" THEN 760
  117. 762   LOCATE 8,16,0:PRINT"8";:GOSUB 840
  118. 764   LOCATE 12,1:PRINT"At any time during a problem you will be";
  119. 766   LOCATE 14,1:PRINT"able to press:";
  120. 767   LOCATE 16,8:PRINT"S - To Stop problems";
  121. 768   LOCATE 16,8:PRINT"S - To Stop problems";:GOSUB 150
  122. 770  CLS:LOCATE 1,14:COLOR CJ,7:PRINT "Instructions";:COLOR 7,CJ:LOCATE 1,35:PRINT"#1";
  123. 772  LOCATE  8,1:PRINT"After each problem, I will tell you the";
  124. 774  LOCATE 10,1:PRINT"kinds of errors you made. After you";
  125. 776  LOCATE 12,1:PRINT"finish all of the problems, I will";
  126. 778  LOCATE 14,1:PRINT"summarize your errors.";:GOSUB 150
  127. 780   CLS:LOCATE 10,1:PRINT"Don't forget to look at the lining-up";
  128. 782   LOCATE 12,1:PRINT"instructions if you haven't seen them.";:GOSUB 150
  129. 800   CHAIN "SUB.BAS"
  130. 820  STOP
  131. 830   FOR X=12 TO 22:LOCATE X,1:PRINT STRING$(40,32);:NEXT X:RETURN
  132. 840   FOR X=12 TO 20:LOCATE X,1:PRINT STRING$(40,32);:NEXT X:LOCATE 23,5:PRINT STRING$(28,32);:RETURN
  133. 850  DEF SEG=0: POKE 1050,PEEK(1052): DEF SEG=64: POKE 23,96: DEF SEG: RETURN
  134. 860   DEF SEG: SCREEN 0: CJ=0:COLOR 7,CJ,CJ: CLS: WIDTH 80: RETURN
  135. 30100  DEF SEG=0: POKE 1050,PEEK(1052): DEF SEG=64: POKE 23,96: DEF SEG: RETURN
  136.