home *** CD-ROM | disk | FTP | other *** search
/ Softdisk G-S 156 / SGDS 156.2mg / SDGS.156 / A / QUIZ.BIN (.txt) < prev    next >
Encoding:
Applesoft BASIC Source Code  |  1994-08-28  |  6.2 KB  |  114 lines  |  [FC] Applesoft BASIC Program (0x4001)

  1. 0 A$ = "R.IRON.QUIZ"
  2. 1 B$ =  CHR$(27):C$ =  CHR$(13):D$ =  CHR$(21):E$ =  CHR$(8):F$ =  CHR$(10):G$ =  CHR$(11):H$ =  CHR$(7): DIM I$(10)
  3. 2  ONERR  GOTO 34
  4. 3  PRINT  CHR$(20); CHR$(12): POKE 33,40: POKE 35,24: HCOLOR= C: ONERR  GOTO 5
  5. 4  PRINT "<CTRL-0x04>VERIFYtitle.rpk": PRINT "<CTRL-0x04>VERIFY"A$: GOTO 7
  6. 5  PRINT  CHR$(20); CHR$(12): POKE 33,40: POKE 35,24:J$ = "The quiz cannot be run.": GOSUB 62: PRINT :J$ = "Make sure all files are here:": GOSUB 62: PRINT : PRINT : PRINT : PRINT :J$ = "Quiz": GOSUB 62: PRINT :J$ = "Quiz.bin": GOSUB 62: PRINT :J$ = A$: GOSUB 62: PRINT :J$ = "TITLE.RPK": GOSUB 62: PRINT : PRINT :J$ = "Press a key to quit.": GOSUB 62: POKE 49168,0: CALL (64780): GOTO 44
  7. 7  ONERR  GOTO 36
  8. 8  GOSUB 101:D = 1: PRINT "<CTRL-0x04>OPEN"A$: PRINT "<CTRL-0x04>READ"A$: INPUT E: INPUT F: PRINT "<CTRL-0x04>CLOSE"A$: DIM G(E)
  9. 9  ONERR  GOTO 36
  10. 10 H = 0:I = 0
  11. 11  GOSUB 54: GOSUB 70: CALL  -3086: IF K$ =  CHR$(27)  THEN 42
  12. 12  IF K$ = "I"  THEN  GOSUB 55
  13. 13  IF   NOT (K$ < >"I")  THEN 11
  14. 14 J = 0:K = 0:L = 0
  15. 15  ONERR  GOTO 36
  16. 16  PRINT "<CTRL-0x04>OPEN"A$",L"F: PRINT "<CTRL-0x04>READ"A$",R0": INPUT E: PRINT  CHR$(4):M = 1
  17. 17  ONERR  GOTO 38
  18. 18 I = I +1: IF H  AND   NOT G(I)  THEN 26
  19. 19  PRINT "<CTRL-0x04>READ"A$",R"I: CALL 800,L$: CALL 800,M$(1): CALL 800,M$(2): CALL 800,M$(3): CALL 800,M$(4): PRINT  CHR$(4):N$ = M$(1): GOSUB 100:M$(1) = "A. " +M$(1):M$(2) = "B. " +M$(2):M$(3) = "C. " +M$(3):M$(4) = "D. " +M$(4): GOSUB 63: HTAB 1: VTAB 3:O$ = L$:N = 33: GOSUB 104:O = 8:P = 1: FOR A = 1 TO 4: HTAB 1: VTAB O:O$ = M$(A): GOSUB 104:O = O +1 +Q: NEXT :P = 0: GOSUB 74
  20. 20  ON   NOT (K$ < >B$) GOTO 25: ON   NOT (K$ < >" ") GOTO 23:P$ = M$( ASC(K$) -64): IF  MID$ (P$,4) = N$  THEN  GOSUB 93: GOTO 22
  21. 21  GOSUB 94
  22. 22  GOTO 24
  23. 23  GOSUB 94
  24. 24  GOTO 26
  25. 25  GOSUB 31
  26. 26 M = M +1: IF M <E +1  THEN 17
  27. 27  IF J +K = E  THEN L = 1
  28. 28  POKE 216,0: PRINT "<CTRL-0x04>CLOSE"A$
  29. 29  GOSUB 45: IF R  AND H  THEN K = 0: GOTO 15
  30. 30  GOTO 9
  31. 31  PRINT  CHR$(20); CHR$(12): POKE 33,40: POKE 35,24: HCOLOR= 6:S = 20:T = 2:U = 150:V = 277: GOSUB 64:S = 22:T = 4:U = 148:V = 275: GOSUB 64:J$ = "Early Exit": VTAB 4: GOSUB 62:J$ = "Exit the quiz early? (y/n):": VTAB 8: GOSUB 62: GOSUB 80: IF K$ = "Y"  THEN M = E: GOTO 33
  32. 32 I = I -1:M = M -1
  33. 33  RETURN 
  34. 34  POKE 216,0: PRINT  CHR$(20); CHR$(12): POKE 33,40: POKE 35,24: HCOLOR= 6:S = 20:T = 2:U = 150:V = 277: GOSUB 64:S = 22:T = 4:U = 148:V = 275: GOSUB 64:J$ = "Disk Error A": VTAB 4: GOSUB 62: GOSUB 40: IF J$ = B$  THEN 42
  35. 35  GOTO 2
  36. 36  POKE 216,0: PRINT  CHR$(20); CHR$(12): POKE 33,40: POKE 35,24: HCOLOR= 6:S = 20:T = 2:U = 150:V = 277: GOSUB 64:S = 22:T = 4:U = 148:V = 275: GOSUB 64:J$ = "Disk Error B": VTAB 4: GOSUB 62: GOSUB 40: IF J$ = B$  THEN 42
  37. 37  GOTO 9
  38. 38  POKE 216,0: PRINT  CHR$(20); CHR$(12): POKE 33,40: POKE 35,24: HCOLOR= 6:S = 20:T = 2:U = 150:V = 277: GOSUB 64:S = 22:T = 4:U = 148:V = 275: GOSUB 64:J$ = "Disk Error C": VTAB 4: GOSUB 62: GOSUB 40: IF J$ = B$  THEN 42
  39. 39 I = I -1: GOTO 17
  40. 40 J$ = "There was a disk error (#" + STR$( PEEK(222)) +").":J$ = J$: VTAB 8: GOSUB 62:J$ = "Check to make sure the disk is in": VTAB 10: GOSUB 62:J$ = "the drive and the drive door is": VTAB 11: GOSUB 62:J$ = "closed. Press Escape to exit the": VTAB 12: GOSUB 62:J$ = "program or press the spacebar": VTAB 13: GOSUB 62
  41. 41 J$ = "to try again...": VTAB 14: GOSUB 62: GOSUB 70: RETURN 
  42. 42  GOSUB 900:J$ = "Exit Program": VTAB 4: GOSUB 62:J$ = "Do you really want to exit the": VTAB 8: GOSUB 62:J$ = "Iron Horse Quiz? (Y/N)": VTAB 10: GOSUB 62: GOSUB 80: IF K$ = "Y"  THEN 44
  43. 43  PRINT  CHR$(20); CHR$(12): POKE 33,40: POKE 35,24: GOTO 9
  44. 44  HOME : TEXT : PRINT "<CTRL-0x04>BYE"
  45. 45  PRINT  CHR$(20); CHR$(12): POKE 33,40: POKE 35,24:K = 0: FOR A = 1 TO E:K = K +G(A): NEXT :I = 0: ON   NOT (K +J) GOTO 53:J$ = "Quiz Summary": VTAB 1: GOSUB 62: HCOLOR= W: HPLOT 0,11 TO 279,11: HPLOT 0,182 TO 279,182: HTAB 1: VTAB 4: PRINT " You answered "K +J" of "E" questions.": IF J = 1  THEN  PRINT " One of the answers was correct."
  46. 46  IF J >1  THEN  PRINT "  ";J;" of the answers were correct."
  47. 47  IF J = 0  THEN  PRINT 
  48. 48  PRINT : PRINT : PRINT :J$ = "The Percentage Correct": GOSUB 62: PRINT : PRINT : PRINT "    of Questions Tried = "; INT(((J/(K +J)) +.005) *100);"%": PRINT "    of Total Questions = " INT(((J/E) +.005) *100);"%": PRINT : PRINT : HCOLOR= X:S = 71:T = 20:U = 126:V = 239: GOSUB 64: ON   NOT (J <E  AND   NOT H  AND L) GOTO 52: PRINT " Retry the ones you missed? (Y/N)": GOSUB 80
  49. 49  ON   NOT (K$ = "Y") GOTO 50:R = 1:H = 1: GOTO 51
  50. 50 R = 0
  51. 51  GOTO 53
  52. 52 R = 0:J$ = "Congratulations!": GOSUB 62: PRINT : PRINT :J$ = "Press a key to continue.": GOSUB 62: POKE 49168,0: CALL (64780)
  53. 53  RETURN 
  54. 54  PRINT "<CTRL-0x04>-title.rpk": HTAB 7: VTAB 16: PRINT "Press I for instructions,";:J$ = " ESC to quit or any other": VTAB 17: GOSUB 62:J$ = " key to start the test.": VTAB 18: GOSUB 62: RETURN 
  55. 55  PRINT  CHR$(20); CHR$(12): POKE 33,40: POKE 35,24: HCOLOR= X:J$ = "INSTRUCTIONS": VTAB 1: GOSUB 62: HPLOT 0,11 TO 279,11:J$ = "Press the letter that corresponds": VTAB 5: GOSUB 62:J$ = "to your best guess. You cannot": VTAB 6: GOSUB 62:J$ = "skip questions. If you miss any": VTAB 7: GOSUB 62:J$ = "questions you'll be given the": VTAB 8: GOSUB 62
  56. 56 J$ = "chance to try again at the end.": VTAB 9: GOSUB 62:J$ = "Press any key.": VTAB 17: GOSUB 62: POKE 49168,0: CALL (64780): IF  PEEK(49152) = 27  THEN  RETURN 
  57. 57  PRINT  CHR$(20); CHR$(12): POKE 33,40: POKE 35,24:J$ = "SCORING": VTAB 1: GOSUB 62: HPLOT 0,11 TO 279,11:J$ = "You will be scored when you've": VTAB 7: GOSUB 62:J$ = "completed every question and have": VTAB 8: GOSUB 62:J$ = "decided whether or not to try any": VTAB 9: GOSUB 62:J$ = "missed questions a second time.": VTAB 10: GOSUB 62
  58. 58 J$ = "Press any key.": VTAB 17: GOSUB 62: POKE 49168,0: CALL (64780): IF  PEEK(49152) = 27  THEN  RETURN 
  59. 59  PRINT  CHR$(20); CHR$(12): POKE 33,40: POKE 35,24:J$ = "CHEATING": VTAB 1: GOSUB 62: HPLOT 0,11 TO 279,11:J$ = "You can cheat while answering the": VTAB 4: GOSUB 62:J$ = "questions by pressing Control-A.": VTAB 5: GOSUB 62:J$ = "This will show you the correct": VTAB 6: GOSUB 62:J$ = "answer. Try to answer all the": VTAB 7: GOSUB 62
  60. 60 J$ = "questions before looking at the": VTAB 8: GOSUB 62:J$ = "answers.": VTAB 9: GOSUB 62:J$ = "Looking at an answer will forfeit": VTAB 12: GOSUB 62:J$ = "points for that question, so only": VTAB 13: GOSUB 62:J$ = "peek as a last resort.": VTAB 14: GOSUB 62:J$ = "Press any key.": VTAB 17: GOSUB 62: POKE 49168,0: CALL (64780): RETURN 
  61. 62  HTAB ((35 - LEN(J$))/2) +1: PRINT J$;: RETURN 
  62. 63  PRINT  CHR$(20); CHR$(12): POKE 33,40: POKE 35,24:J$ = "Question #" + STR$(I):J$ = J$: VTAB 1: GOSUB 62: HCOLOR= W: HPLOT 0,11 TO 279,11: HPLOT 0,187 TO 279,187: RETURN 
  63. 64  HPLOT T,S TO V,S TO V,U TO T,U TO T,S: HPLOT T +1,S TO T +1,U: HPLOT V -1,S TO V -1,U: RETURN 
  64. 65  HTAB Y: VTAB Z: FOR A = 1 TO AA: PRINT I$(A): NEXT : RETURN 
  65. 66  HTAB Y: VTAB Z: FOR A = 1 TO 10: IF  LEN(I$(A))  THEN  PRINT I$(A): GOTO 68
  66. 67 A = 10
  67. 68  NEXT : RETURN 
  68. 69  HTAB Y: VTAB Z: FOR A = 1 TO AA:J$ = I$(A): GOSUB 62: PRINT : NEXT : RETURN 
  69. 70  FOR ZQ = 0 TO 127:ZQ =  RND(1):ZQ =  PEEK(49152): NEXT : POKE 49168,0:J$ =  CHR$(ZQ -129): IF J$ =  CHR$(1)  THEN  GOSUB 84: GOTO 70
  70. 71  IF J$ =  CHR$(19)  THEN  GOSUB 89: GOTO 70
  71. 72 AB = ( ASC(J$) -( ASC(J$) >96  AND  ASC(J$) <123) *32): IF (AB > = 0  AND AB <128)  THEN J$ =  CHR$(AB)
  72. 73 K$ = J$: RETURN 
  73. 74 AC = 0:AD = 0
  74. 75  GOSUB 70: IF J$ >"@"  AND J$ <"F"  THEN AD = 1
  75. 76  IF J$ =  CHR$(27)  THEN AD = 1
  76. 77  IF   NOT (AD)  THEN 75
  77. 78 K$ = J$: IF AC  AND K$ < >B$  THEN K$ = " "
  78. 79  RETURN 
  79. 80 AD = 0
  80. 81  GOSUB 70: IF J$ = "Y"  OR J$ = "N"  THEN AD = 1
  81. 82  IF   NOT (AD)  THEN 81
  82. 83 K$ = J$: RETURN 
  83. 84  IF I = 0  THEN  RETURN 
  84. 85 AC = 1: HOME : PRINT  CHR$(4)"pr#0": FOR A = 1 TO 40: PRINT "=";: NEXT : HTAB 10: VTAB 2: PRINT "ANSWER - NO PEEKING!";: PRINT : FOR A = 1 TO 40: PRINT "=";: NEXT : PRINT : PRINT : PRINT "THE CORRECT ANSWER IS:": PRINT : PRINT :O$ = N$:J$ = "": FOR A = 1 TO  LEN(O$):Q$ =  MID$ (O$,A,1):Q$ =  CHR$( ASC(Q$) -32 *(Q$ >"`"  AND Q$ <"{")):J$ = J$ +Q$: NEXT :O$ = J$: GOSUB 104: HTAB 8: VTAB 22: PRINT "PRESS ANY KEY TO CONTINUE"
  85. 86  POKE 49233,0
  86. 87 B = AE: IF   NOT (( PEEK(49152) >127))  THEN 87
  87. 88  POKE 49168,0: GOSUB 92: RETURN 
  88. 89  IF D  THEN D = 0: GOTO 91
  89. 90 D = 1
  90. 91  RETURN 
  91. 92  CALL 2304: POKE 48688, PEEK(0): POKE 48689, PEEK(1): POKE 49232,0: RETURN 
  92. 93 J = J +1:G(I) = 0: GOSUB 95: RETURN 
  93. 94 K = K +1:G(I) = 1: GOSUB 97: RETURN 
  94. 95  IF D = 0  THEN  RETURN 
  95. 96 B = 40:A = 200: POKE 768,B: POKE 769,A: FOR A = 1 TO 15: CALL 770: NEXT : RETURN 
  96. 97  IF D = 0  THEN  RETURN 
  97. 98 B = 200:A = 40: POKE 768,B: POKE 769,A: FOR A = 1 TO 100: CALL 770: NEXT : RETURN : DATA 173,0,3,174,1,3,8,120,72,160,16,58,208,5,173,48: DATA 192,104,72,136,208,245,160,16,202,208,240,104,40,96: DATA 32,190,222,32,227,223,32,108,221,133,133,132: DATA 134,32,44,213,160,1,136,152,160,2,162,141,32
  98. 99  DATA 233,227,32,154,218,96,
  99. 100  FOR A = 1 TO 10:B =  INT( RND(16) *4) +1:AE =  INT( RND(17) *4) +1:M$ = M$(B):M$(B) = M$(AE):M$(AE) = M$: NEXT : RETURN 
  100. 101  POKE  -16302,0: GOSUB 800: FOR A = 1 TO 30: READ B: POKE 769 +A,B: NEXT : FOR A = 0 TO 30: READ B: POKE 800 +A,B: NEXT : RETURN 
  101. 104 Q = 1:R$ = O$: IF  LEN(R$) < = N  THEN  PRINT O$: RETURN 
  102. 105 AF = N +1: GOSUB 110:Q = Q +1: PRINT O$
  103. 106  ON   NOT ( LEN(R$) >N) GOTO 108:Q = Q +1:AF = N +1: GOSUB 110: IF P  THEN  PRINT "   ";
  104. 107  PRINT O$: GOTO 106
  105. 108 O$ = R$: IF P  THEN  PRINT "   ";
  106. 109  PRINT O$: RETURN 
  107. 110 AG = AF
  108. 111 S$ =  MID$ (R$,AG,1):AG = AG -1: IF   NOT (S$ = " "  OR AG = 0)  THEN 111
  109. 112 O$ =  LEFT$(R$,AG): IF  LEN(R$) = AG  THEN  RETURN 
  110. 113 R$ =  RIGHT$(R$, LEN(R$) -AG -1): RETURN 
  111. 800  PRINT  CHR$(4)"prefix": INPUT P$: PRINT  CHR$(4)"prefix"P$: PRINT  CHR$(4)"bloadsoftdisk":A = 768: POKE A,0:A = A +1:X$ = "Iron Horse Quiz": GOSUB 820:X$ = "v1.0": GOSUB 820
  112. 810 X$ = "v1.0f2": GOSUB 820:X$ = "By: The Softdisk Staff": GOSUB 820: POKE A,170: CALL 6 *4096: PRINT  CHR$(4)"prefix"P$: PRINT  CHR$(4)"close": RETURN 
  113. 820  POKE A,170:A = A +1: POKE A,(35 - LEN(X$))/2:A = A +1: FOR I = 1 TO  LEN(X$): POKE A +I -1, ASC( MID$ (X$,I,1)): NEXT :A = A + LEN(X$): RETURN 
  114. 900  POKE 216,0: PRINT  CHR$(20); CHR$(12): POKE 33,40: POKE 35,24: HCOLOR= 5:S = 20:T = 2:U = 150:V = 277: GOSUB 64:S = 22:T = 4:U = 148:V = 275: GOTO 64