home *** CD-ROM | disk | FTP | other *** search
/ The Glitch Apple Disk Collection / 2014.glitch.apple.collection.zip / indexed / COMPKARA.DSK / P17.bas < prev    next >
BASIC Source File  |  2014-09-09  |  20KB  |  246 lines

  1. 10  REM  (C) 1984 EDWARD BADASOV
  2. 11  REM  COMPETITION KARATE
  3. 21  ONERR  GOTO 19000
  4. 22  IF  PEEK(815)  THEN  GOSUB 40000: GOSUB 40300: GOTO 965
  5. 23  GOSUB 23104: GOTO 900
  6. 210  VTAB V% +6: HTAB 5 +20 *H%: PRINT RNA$(V% +15 *H%): RETURN 
  7. 220  VTAB 4: HTAB 1: INVERSE : PRINT PN$: NORMAL : GOSUB 4050: IF RC% = 0  THEN  VTAB 23: HTAB 1: FLASH : PRINT S$S$" NO STUDENTS ";: NORMAL : PRINT CP$(3);: GET A$:RF% = 1: RETURN 
  8. 230  FOR I = 1 TO 30:RC%(I) = 0: NEXT :RF% = 0:X1% = 0:X2% = CO% -P +1: HOME : VTAB 23: INVERSE : PRINT " [<-]  [->]  [SPACE]  [!]=ALL  [RETURN] ";:H% = 0:V% = 1: GOSUB 422
  9. 240  INVERSE : GOSUB 210:XC% = V% +K5% *H%: POKE KB%,0
  10. 250  IF  PEEK(KP%) <KN%  THEN 250
  11. 260 X% =  PEEK(KP%) -KN%: IF X% = K7%  THEN RF% = 1: NORMAL : RETURN 
  12. 270  IF X% = K1%  THEN  NORMAL : GOSUB 210:V% = V% +1: IF V% +K5% *H% >RC%  OR V% >K5%  THEN H% =   NOT H%:V% = 1: IF H%  AND RC% =  <K5%  THEN H% = 0
  13. 280  IF X% = K8%  THEN  NORMAL : GOSUB 210:V% = V% -1: IF V% <1  THEN V% = (K5% *H%) +(RC% -K5% *(RC% >K5%)) *(H% = 0):H% =   NOT H%: IF H%  AND RC% < = K5%  THEN H% = 0
  14. 281  IF X% = K8%  OR X% = K1%  THEN 240
  15. 285  IF X1% = X2%  AND X% = K2%  AND   NOT RC%(XC%)  THEN  GOSUB 422: GOTO 240
  16. 290  IF X% = K2%  THEN RC%(XC%) =   NOT RC%(XC%): IF   NOT RC%(XC%)  THEN  NORMAL :X1% = X1% -2
  17. 300  IF X% = K2%  THEN  HTAB 2 +20 *H%: VTAB  PEEK(37): PRINT SP$:X1% = X1% +1: GOSUB 422: GOTO 240
  18. 310  IF X% = K9%  THEN  GOSUB 360: GOSUB 422
  19. 320  IF X% = K3%  THEN  NORMAL : GOSUB 210: GOTO 340
  20. 330  GOTO 240
  21. 340  FOR I = 1 TO RC%: IF RC%(I)  THEN  RETURN 
  22. 350  NEXT :RF% = 1: RETURN 
  23. 360 X3% = V% -1: FOR I = XC% TO RC%: IF X2% = X1%  AND   NOT RC%(I)  THEN  RETURN 
  24. 365 RC%(I) =   NOT RC%(I): IF   NOT RC%(I)  THEN  NORMAL :X1% = X1% -2
  25. 370 X3% = X3% +1: IF X3% >15  THEN X3% = 1
  26. 380  HTAB 2 +20 *(I >K5%): VTAB X3% +K6%: PRINT SP$:X1% = X1% +1: INVERSE : NEXT : RETURN 
  27. 400 C$ = "": GOSUB 422: PRINT "["CU$;
  28. 402  IF  PEEK(KP%) <KN%  THEN 402
  29. 404  GET A$: IF A$ =  CHR$(13)  THEN  PRINT :CF% = 0: RETURN 
  30. 406  IF A$ = ES$  THEN C$ = "": PRINT : RETURN 
  31. 408  IF  LEN(C$) = 1  AND A$ = BS$  THEN  PRINT A$SP$A$A$CU$;
  32. 410  IF (A$ <SP$  AND A$ < >BS$)  OR A$ = ","  OR ( LEN(C$) <1  AND A$ = SP$)  THEN  PRINT S$;: GOTO 402
  33. 412  IF  LEN(C$) <2  AND A$ = BS$  THEN C$ = "": GOTO 402
  34. 414  IF A$ < >BS$  AND  LEN(C$) = 15  THEN  PRINT S$;: GOTO 402
  35. 416 C$ = C$ +A$
  36. 418  IF A$ = BS$  THEN  PRINT A$SP$A$A$CU$;:C$ =  LEFT$(C$, LEN(C$) -2): GOTO 402
  37. 420  PRINT BS$A$CU$;: GOTO 402
  38. 422  POKE KB%,0: POKE 7,3: CALL SD%: RETURN 
  39. 500  CALL  -868: GOSUB 422: PRINT " [ ]";: HTAB  PEEK(36) -1: GET A$: PRINT A$: IF A$ = ES$  THEN  POP : GOTO 22205
  40. 505  RETURN 
  41. 600  ONERR  GOTO 610
  42. 605 SS% = 786: IF  PEEK(798) = 2  OR   NOT DF%  THEN 620
  43. 610  CALL SS%: VTAB 24: PRINT "INSERT DATA DISK IN DRIVE " PEEK(798)" AND HIT KEY";: GOSUB 422: GET A$: HTAB 1: CALL  -868: VTAB 5: PRINT 
  44. 615  IF A$ = ES$  AND A0%  THEN  POP :DF% = 1: POKE 35,24: GOTO 22205
  45. 620 SS% = 787: PRINT D$"VERIFYSTUDENTS & ROSTERS,D" PEEK(798)
  46. 625 DF% = 0:A0% = 0: ONERR  GOTO 19000
  47. 626  RETURN 
  48. 630  ONERR  GOTO 640
  49. 635 SS% = 786: IF  PEEK(798) = 2  OR DF%  THEN 645
  50. 640  CALL SS%: VTAB 24: PRINT "INSERT GAME DISK IN DRIVE 1 AND HIT KEY";: GOSUB 422: GET A$: VTAB 23: CALL  -958: PRINT 
  51. 645 SS% = 787: PRINT D$"VERIFYP20,D1"
  52. 650 DF% = 1: VTAB 23: ONERR  GOTO 19000
  53. 651  RETURN 
  54. 900  GOSUB 22205: GOSUB 22380
  55. 910  GOSUB 1030: GOSUB 1000: POKE 34,22: VTAB 23
  56. 915  IF   NOT SG%  THEN  GOSUB 26000
  57. 920  GOSUB 630
  58. 922  CLEAR : GOSUB 40000
  59. 945  ONERR  GOTO 965
  60. 950  PRINT D$"VERIFY GC,D1"
  61. 955  ONERR  GOTO 19000
  62. 960  PRINT D$"RUNP14,D1"
  63. 965  ONERR  GOTO 19000
  64. 969  PRINT D$"BLOADUL.5,A520,D1"
  65. 970  CALL 520"P16"
  66. 975  POKE 34,4: HOME : VTAB 12: HTAB 8: PRINT "ONE ETERNAL MOMENT PLEASE": IF   NOT GS%  THEN 992
  67. 980  GOSUB 630
  68. 983  PRINT D$"OPENSG,D1"
  69. 986  PRINT D$"DELETESG,D1"
  70. 987  PRINT D$CL$
  71. 989  GOSUB 26000
  72. 992  GOSUB 630
  73. 995  PRINT D$"RUNP20,D1"
  74. 1000  HOME : PRINT "THE STUDENTS ARE NOW INSTRUCTED TO SIT  DOWN AROUND THE MAT, WHERE THEY WILL    SOON FACE EACH OTHER IN FIERCE COMBAT."
  75. 1015  PRINT : PRINT : PRINT "ANY SECOND NOW, THE FIRST PAIR OF BRAVE MARTIAL ARTISTS WILL BE CALLED ONTO THE MAT TO PUT THEIR SKILLS TO THE ULTIMATE TEST...": RETURN 
  76. 1030  POKE 34,5: HOME : PRINT "WE ARE READY TO BEGIN THE MATCHES.": PRINT : PRINT "PROCEED TO THE ARENA [Y/N] ? [Y]";: HTAB 31: GOSUB 422: GET A$: IF A$ < >"N"  AND A$ < >ES$  THEN  POKE KB%,0: RETURN 
  77. 1031  PRINT "N": PRINT : POKE KB%,0: IF EL% < >1  THEN 1040
  78. 1035  PRINT "SAVE THIS TOURNAMENT"U2$;: GOSUB 422: HTAB 31: GET A$: IF A$ = ES$  THEN 1030
  79. 1036  IF A$ = "Y"  THEN  PRINT A$:GS% = 1: POP : GOTO 975
  80. 1037  PRINT : PRINT 
  81. 1040  FLASH : PRINT CN$;: NORMAL : PRINT U2$;: HTAB 36: GET A$: IF A$ < >"Y"  THEN 1030
  82. 1045  PRINT A$: POP : GOTO 900
  83. 1050  HOME : VTAB 8: FLASH : PRINT CN$;: NORMAL : PRINT U2$;: HTAB 36: GET A$: IF A$ < >"Y"  THEN 900
  84. 1055  POKE 34,4: GOTO 975
  85. 1500  GOSUB 630: ONERR  GOTO 1520
  86. 1510  PRINT D$"VERIFYMT,D1"
  87. 1511  ONERR  GOTO 19000
  88. 1512  RETURN 
  89. 1520  CALL 787: POKE KB%,0: VTAB 14: FLASH : PRINT S2$" NO MATCHES FOUND ";: GOSUB 2010: GOSUB 630: ONERR  GOTO 19000
  90. 1521  PRINT D$"OPEN SG,D1"
  91. 1522  PRINT D$CL$
  92. 1525  POP :SG% = 0: GOTO 22205
  93. 2000  POKE KB%,0: HOME : VTAB 24: FLASH : PRINT : PRINT S2$;: RETURN 
  94. 2010  NORMAL : PRINT HK$(3);: GET A$: HOME : RETURN 
  95. 3000 E =  RND( -( PEEK(78) + PEEK(79) *256)):E = 1: RETURN 
  96. 19000  CALL 787: POKE KB%,0: IF  PEEK(222) = 255  THEN  CALL 803
  97. 19003  IF  PEEK(222) = 6  THEN  GOSUB 2000: PRINT HK$(ST%)" NOT ON DISK";: GOSUB 2010: POP : ON V1% +1 GOTO 22305,22305,22305,22305,22182
  98. 19010  FLASH : PRINT : PRINT S$" DISK ERROR ";: NORMAL : PRINT " CHECK SETUP AND STRIKE KEY";: GET A$: HTAB 1: CALL  -868: VTAB  PEEK(37): PRINT : RESUME 
  99. 20000  POKE 34,3: HOME : INVERSE : PRINT PN$: HTAB 14: PRINT U3$: NORMAL : POKE 34,6: VTAB 7: FOR I = 1 TO 30: HTAB 1 +20 *(I >15): IF I = 16  THEN  VTAB 7
  100. 20005  PRINT BR$ LEFT$(RN$(I),15): NEXT : POKE 34,22
  101. 20010  VTAB 4: HTAB 30: PRINT  SPC( RC% <10)RC%SP$"STUDENT";: IF RC% < >1  THEN  PRINT "S"
  102. 20015  RETURN 
  103. 20200  HOME : VTAB 24: INVERSE : PRINT "[ROSTER] [C]ATALOG";: NORMAL : PRINT SP$;: GOSUB 400: HOME : IF C$ = ""  THEN 22305
  104. 20203  IF  LEFT$(C$,1) <"A"  THEN  GOSUB 2000: PRINT "INVALID ROSTER NAME";: GOSUB 2010: GOTO 20200
  105. 20205 PN$ = C$: IF PN$ = "C"  THEN  GOSUB 22120: GOTO 20200
  106. 20208  VTAB 24: PRINT "GETTING TEAM ROSTER: ";: INVERSE : PRINT SP$PN$SP$;: NORMAL : VTAB 5: PRINT : GOSUB 25100: IF RC% <1  THEN  GOSUB 2000: PRINT "EMPTY ROSTER";: GOSUB 2010: GOTO 22305
  107. 20210  GOSUB 20000: GOSUB 230: GOSUB 22160: GOTO 22305
  108. 20215  STOP 
  109. 20300 A$ = "": FOR I = 1 TO RC%: IF  PEEK(KP%) = 155  THEN 20310
  110. 20301  IF RC%(I)  THEN RC%(I) = 0:A$ = RN$(I): RETURN 
  111. 20305  NEXT :RF% = 1: RETURN 
  112. 20310  GOSUB 2000: PRINT "ROSTER ENTRY ABORTED";: GOSUB 2010:RF% = 1: RETURN 
  113. 20400  IF RF%  THEN  HOME : VTAB 24: HTAB 2: INVERSE : PRINT " [STUDENT NAME]  [R]OSTER  [C]ATALOG ";: NORMAL : RETURN 
  114. 20402  HOME : VTAB 24: PRINT "STUDENTS FROM ROSTER: ";: INVERSE : PRINT SP$PN$SP$;: NORMAL : RETURN 
  115. 22100  HOME : VTAB 24: POKE KB%,0: FLASH : PRINT CN$;: NORMAL : PRINT U2$;: HTAB 36: GET A$: IF A$ < >"Y"  THEN  HTAB 1: CALL  -958: RETURN 
  116. 22105  PRINT A$: POP : POP : POP : POKE 35,24: POKE 34,4: GOTO 900
  117. 22120  POKE 34,6: HOME : PRINT D$"CAT,D"; PEEK(798): GET A$: PRINT : GOSUB 22160: RETURN 
  118. 22150  HTAB 19 *T% +2: VTAB 6 +P: PRINT BL$;: HTAB 19 *T% +2: PRINT  LEFT$(NA$(T%,P),17): RETURN 
  119. 22160  POKE 34,3: HOME : VTAB 5: PRINT "LEFT TEAM----";: INVERSE : PRINT U3$;: NORMAL : PRINT "---RIGHT TEAM": POKE 34,6: HOME : FOR K = 0 TO 1: VTAB 7: FOR J = 1 TO CO%: HTAB 19 *K +1: PRINT "-";NA$(K,J): NEXT J,K: POKE 34,22: RETURN 
  120. 22165  FOR I = 0 TO 1: FOR J = 1 TO CO%:NA$(I,J) = "": NEXT J,I: RETURN 
  121. 22170  FOR K = 0 TO T%: FOR J = 1 TO CO%: IF A$ = NA$(K,J)  THEN  POKE KB%,0: HOME : VTAB 24: FLASH : PRINT : PRINT S2$"STUDENT ALREADY ENTERED";: NORMAL : PRINT HK$(3);: GET A$: HOME : POP : GOTO 22305
  122. 22172  NEXT J,K: RETURN 
  123. 22180 X =  FRE(0): FOR Z = 0 TO 1: FOR P = 1 TO CO%
  124. 22182  HOME : VTAB 24: HTAB 8: INVERSE : PRINT SP$"["HK$(Z)"]   [C]ATALOG ";: NORMAL :NA$(Z,P) = "": VTAB 7: HTAB 2 +19 *Z: PRINT BL$;: HTAB 2 +19 *Z: GOSUB 400:A$ = C$: IF A$ = ""  THEN  PRINT : GOSUB 22100: GOTO 22182
  125. 22183  IF A$ = "C"  THEN  GOSUB 22120: GOTO 22182
  126. 22184  GOSUB 22193: IF A$ = NA$(0,1)  THEN  GOSUB 2000: PRINT "NOT AN INSTRUCTOR...YET";: GOSUB 2010: GOTO 22182
  127. 22186 T% = Z:NA$(T%,P) = A$:X$ = A$:ST% = T%: GOSUB 25010: IF US%(T%,P) < >T% +1  THEN  GOSUB 2000: PRINT "NOT A" CHR$(T% *78)" "HK$(T%);: GOSUB 2010: GOTO 22182
  128. 22189  IF T%  AND INST%(T%,P) < >INST%(0,P)  THEN  GOSUB 2000: PRINT "WRONG INSTRUCTOR";: GOSUB 2010: GOTO 22182
  129. 22190  HOME : VTAB 24: HTAB 14: PRINT HK$(4);: GOSUB 422: GET A$: GOSUB 22150: NEXT P,Z: GOSUB 22500: POKE 35,24: HOME : POKE 34,4: RETURN 
  130. 22193  IF  RIGHT$(A$,1) = SP$  THEN A$ =  LEFT$(A$, LEN(A$) -1): GOTO 22193
  131. 22194  RETURN 
  132. 22205  POKE 34,3: HOME : INVERSE : VTAB 5: HTAB 12: PRINT " STAGE TOURNAMENT ": NORMAL : POKE 34,5: PRINT : IF SG%  THEN 26340
  133. 22206  ONERR  GOTO 19000
  134. 22220  PRINT "STAGE AN [O]FFICAL DIVISION TOURNAMENT  OR JUST [R]EGULAR MATCHES ? [R]";: HTAB  PEEK(36) -1: GOSUB 422: GET A$: IF A$ = ES$  THEN  PRINT : POP : GOTO 1050
  135. 22225  IF A$ < >"O"  THEN  PRINT : GOTO 22265
  136. 22235  PRINT A$: PRINT : PRINT "WHICH DIVISION:": FOR I = 0 TO 4: PRINT " ["I +1"] "V1$(I): NEXT 
  137. 22237  VTAB 17: PRINT "SELECT --->";: GOSUB 500:V$ = A$: IF V$ <"1"  OR V$ >"5"  THEN 22237
  138. 22240  IF V$ = "5"  THEN CO% = 1:RO% = 1:EL% =  -1:V1% = 4:A0% = 1: GOSUB 600: GOSUB 22165: GOSUB 22160: GOSUB 22180: RETURN 
  139. 22241  IF V$ < >"4"  THEN 22250
  140. 22243  VTAB 19: PRINT "WHICH DEGREE [1-9] ?";: GOSUB 500:DEG% =  VAL(A$) +6: IF DEG% <7  OR DEG% >15  THEN 22243
  141. 22250  VTAB 19 +2 *(V$ = "4"):CO% = 0: PRINT "2, 4, 8 OR 16 ENTRANTS PER TEAM ?";: GOSUB 500: IF A$ < >"2"  AND A$ < >"4"  AND A$ < >"8"  AND A$ < >"1"  THEN 22250
  142. 22252  IF A$ = "1"  THEN  VTAB  PEEK(37): HTAB 37: PRINT "6]":CO% = 16
  143. 22255  IF CO% < >16  THEN CO% =  VAL(A$)
  144. 22260 V1% =  VAL(V$) -1:RO% = 1:EL% = 1: GOTO 22285
  145. 22265 V1% = 0: VTAB 10: PRINT "HOW MANY ENTRANTS PER TEAM [1-16] ?";: GOSUB 500: IF A$ <"1"  OR A$ >"9"  THEN 22265
  146. 22267  IF A$ < >"1"  THEN CO% =  VAL(A$): PRINT : GOTO 22275
  147. 22268  POKE KB%,0: IF A$ = "1"  THEN  VTAB  PEEK(37): HTAB 39: PRINT " ]";: HTAB 39: VTAB  PEEK(37): GET B$: IF B$ =  CHR$(13)  THEN CO% = 1: PRINT : GOTO 22275
  148. 22269  PRINT B$: IF B$ <"0"  OR B$ >"6"  THEN 22265
  149. 22270 CO% = 10 + VAL(B$)
  150. 22275  VTAB 12: PRINT "HOW MANY MATCHES [1-5] ?";: GOSUB 500: IF A$ <"1"  OR A$ >"5"  THEN 22275
  151. 22280 RO% =  VAL(A$):EL% = 0
  152. 22285  POKE KB%,0:A0% = 1: GOSUB 600: GOSUB 22165: GOSUB 22160: FOR Z = 0 TO 1:T% = Z: GOSUB 22300: NEXT 
  153. 22290  GOSUB 22500: POKE 35,24: HOME : POKE 34,3: RETURN 
  154. 22300 X =  FRE(0):RF% = 1: FOR P = 1 TO CO%:NA$(T%,P) = "": NEXT : FOR P = 1 TO CO%
  155. 22305  GOSUB 20400:ST% = 5:NA$(T%,P) = "": VTAB 6 +P: HTAB 2 +19 *T%: PRINT BL$;: HTAB 2 +19 *T%: IF   NOT RF%  THEN  GOSUB 20300: PRINT A$: IF RF%  THEN 22305
  156. 22306  IF   NOT RF%  THEN 22314
  157. 22307  GOSUB 400:A$ = C$: IF A$ = "C"  THEN  GOSUB 22120: GOTO 22305
  158. 22310  IF A$ = ""  THEN  PRINT : GOSUB 22100: GOTO 22305
  159. 22312  IF A$ = "R"  THEN  GOTO 20200
  160. 22314  GOSUB 22193: GOSUB 22170:NA$(T%,P) = A$
  161. 22315 X$ = NA$(T%,P): GOSUB 25010: IF US%(T%,P)  THEN  GOSUB 2000: PRINT "NOT ELIGIBLE FOR FIGHTING";: GOSUB 2010: GOTO 22305
  162. 22317  IF EL%  AND ((V1% <3  AND (RA%(T%,P) >V1%(V1%)  OR RA%(T%,P) <V1%(V1%) -1))  OR (V1% = 3  AND RA%(T%,P) < >DEG%))  THEN  GOSUB 2000: PRINT "RANK NOT IN THIS DIVISION";: GOSUB 2010: GOTO 22305
  163. 22320  IF EL%  AND V1% = 3  AND RANK%(T%,P) < >DEG%  THEN  GOSUB 2000: PRINT "WRONG DEGREE OF BLACK";: GOSUB 2010: GOTO 22305
  164. 22325  HOME : VTAB 24: HTAB 14: PRINT HK$(4);: POKE 7,4: CALL SD%: IF RF%  THEN  GET A$
  165. 22326  HOME : GOSUB 22150: NEXT P: HOME : RETURN 
  166. 22380  GOSUB 22485: GOSUB 3000:MCOUNT% = 0:FLAG% = 0: FOR I = 1 TO CO%:ST%(0,I) = 0:ST%(1,I) = 0: NEXT :X =  FRE(0): FOR I = 1 TO CO%:W% = 0:H% = 0:R% = 0:P = TZ%(0,I): GOSUB 22395
  167. 22390  NEXT : PRINT : VTAB 23: HTAB 10: INVERSE : PRINT "STRIKE KEY WHEN READY";: NORMAL : GOSUB 422: GET A$: POKE 34,3: HOME : RETURN 
  168. 22395  HTAB 19: VTAB  PEEK(37) +1: PRINT X1$;: FOR J = 1 TO CO%: HTAB 20: PRINT J;:P1 = TZ%(1,J): IF ST%(1,P1)  OR  RND(E) <.35  THEN 22410
  169. 22405  IF  ABS(WE%(0,P) -WE%(1,P1)) < = W%  AND  ABS(HE%(0,P) -HE%(1,P1)) < = H  AND  ABS(RA%(0,P) -RA%(1,P1)) < =  INT(R)  THEN OP%(0,P) = P1:OP%(1,P1) = P:ST%(1,P1) = 1: GOSUB 22425: RETURN 
  170. 22410  NEXT :W% = W% +8:H = H +.5:R = R +.25: GOTO 22395
  171. 22415  PRINT " LEFT TEAM";: HTAB 30: PRINT "RIGHT TEAM": PRINT "-----------";: HTAB 29: PRINT "------------": PRINT : RETURN 
  172. 22425  IF  PEEK(37) >23  THEN  POKE 37,23
  173. 22435  HTAB 20: VTAB  PEEK(37) +1: PRINT X1$;: HTAB 15: FLASH : PRINT " STRIKE KEY";: NORMAL : GOSUB 422: GET A$: HTAB 1: CALL  -868: INVERSE : PRINT  LEFT$(NA$(0,P),11);: NORMAL : HTAB 13: PRINT "("AG%(0,P)")";: HTAB 19: PRINT "-:-";
  174. 22450  HTAB 23: PRINT "("AG%(1,OP%(0,P))")";: INVERSE : HTAB 29: PRINT  LEFT$(NA$(1,OP%(0,P)),11): NORMAL : PRINT RA$(RA%(0,P));: IF RA%(0,P) <7  THEN  PRINT " BELT";
  175. 22460  HTAB 29: PRINT RA$(RA%(1,OP%(0,P)));: IF RA%(1,OP%(0,P)) <7  THEN  PRINT " BELT";
  176. 22465  PRINT : PRINT "H:" INT(HE%(0,P)/12)"'"HE%(0,P) - INT(HE%(0,P)/12) *12" W:"WE%(0,P);: HTAB 29: PRINT "H:" INT(HE%(1,OP%(0,P))/12)"'"HE%(1,OP%(0,P)) - INT(HE%(1,OP%(0,P))/12) *12;
  177. 22475  PRINT " W:"WE%(1,OP%(0,P))"   ";: HTAB 1: PRINT W%(0,P)"-"L%(0,P)"  "TW%(0,P)"-"TL%(0,P);: HTAB 29: PRINT W%(1,OP%(0,P))"-"L%(1,OP%(0,P))"  "TW%(1,OP%(0,P))"-"TL%(1,OP%(0,P))
  178. 22480  PRINT : GOSUB 3000: RETURN 
  179. 22485  HOME : HTAB 14: VTAB 4: INVERSE : PRINT "MATCH-UPS FOR": HTAB 15: PRINT "FIRST ROUND": NORMAL : VTAB 5: GOSUB 22415: POKE 34,7: RETURN 
  180. 22500  IF CO% = 1  THEN TZ%(0,1) = 1:TZ%(1,1) = 1: RETURN 
  181. 22501  FOR K = 0 TO 1: FOR I = 1 TO CO%:TZ%(K,I) = I: NEXT : FOR I = 1 TO CO%: FOR J = 1 TO CO% -1: IF HE%(K,TZ%(K,J)) >HE%(K,TZ%(K,J +1))  THEN TE% = TZ%(K,J):TZ%(K,J) = TZ%(K,J +1):TZ%(K,J +1) = TE%
  182. 22505  NEXT J,I,K: RETURN 
  183. 23104 BS$ =  CHR$(8):X1$ = "  ":S$ =  CHR$(7):S2$ = S$ +S$:HK$(4) = "(HAND SALUTE) ":RX = 1: POKE 44452,17: POKE 44605,16:W% = 3:H = 0:R = 0:CU$ = "]": POKE 6,46:GS% = 0
  184. 23105 SD% = 768: GOSUB 30000: GOSUB 26100: GOSUB 26300:WD% = 0:LL$ = "========================================":HK$(3) = " - STRIKE KEY ":HK$(0) = "CHALLENGER":HK$(1) = "INSTRUCTOR":HK$(5) = "STUDENT"
  185. 23140  DIM AB%(9,2,16),IN%(1,16),OP%(1,16),TZ%(1,16),XP%(1,16),T1%(1,16),T2%(1,16),T3%(1,16),US%(1,16),ST%(1,16),PN%(1,16),RN$(30),RC%(30)
  186. 23142 BR$ = "[ ] ":K5% = 15:K6% = 6:K2% = 32:K3% = 13:K8% = 8:K1% = 21:K7% = 27:K9% = 33:RS$ = ".ROSTER":KN% = 128:HK$(2) = "ROSTER":U3$ = " REGISTRATION "
  187. 23145 CN$ = S2$ +"YOU REALLY WANT TO CANCEL": FOR I = 1 TO 9: READ ABIL$(I): NEXT : FOR I = 1 TO 16: READ RA$(I): NEXT : FOR I = 0 TO 4: READ V1$(I),V1%(I): NEXT :U2$ = " [Y/N] ? [N]":BL$ = "                 ": RETURN 
  188. 25010  GOSUB 600: VTAB 6
  189. 25015  PRINT D$"VERIFY^"X$",D" PEEK(798)
  190. 25020  PRINT D$"OPEN^"X$
  191. 25030  PRINT D$"READ^"X$
  192. 25040  FOR I = 1 TO 9: INPUT A%: NEXT : INPUT US%(T%,P),AG%(T%,P)
  193. 25050  INPUT INST%(T%,P),WE%(T%,P),HE%(T%,P),RA%(T%,P)
  194. 25060  INPUT W%(T%,P),L%(T%,P),A%,A%,A%,A%,A%,A$
  195. 25070  PRINT D$CL$"^"X$
  196. 25080  RETURN 
  197. 25100  FOR I = 1 TO 30:RN$(I) = "": NEXT :ST% = 2
  198. 25105  GOSUB 600
  199. 25110  PRINT D$"VERIFY"PN$".ROSTER,D" PEEK(798)
  200. 25115  PRINT D$"OPEN"PN$RS$
  201. 25120  PRINT D$"READ"PN$RS$
  202. 25125  INPUT RC%: IF RC%  THEN  FOR I = 1 TO RC%: INPUT RN$(I): NEXT 
  203. 25130  PRINT D$CL$
  204. 25135  RETURN 
  205. 26000  GOSUB 630
  206. 26010  PRINT D$OM$
  207. 26016  PRINT D$"DELETEMT"
  208. 26020  PRINT D$OM$
  209. 26025  PRINT D$"WRITEMT"
  210. 26030  PRINT CO%: PRINT EL%: PRINT RO%: PRINT 1: PRINT RX
  211. 26035  FOR J = 1 TO CO%:I = TZ%(0,J): PRINT NA$(0,I): PRINT TW%(0,I): PRINT TL%(0,I): PRINT WD%
  212. 26040 X% = OP%(0,I): PRINT NA$(1,X%): PRINT TW%(1,X%): PRINT TL%(1,X%): PRINT WD%: NEXT 
  213. 26045  FOR I = 1 TO 5: PRINT INST$(I): NEXT 
  214. 26050  PRINT D$CL$
  215. 26055  RETURN 
  216. 26100  GOSUB 630
  217. 26105  PRINT D$"OPEN UL.4,D1"
  218. 26107  PRINT D$"READ UL.4"
  219. 26109  FOR I = 1 TO 5: INPUT INST$(I): FOR J = 1 TO 4: INPUT IABIL%(I,J): NEXT J,I
  220. 26110  PRINT D$CL$
  221. 26215  RETURN 
  222. 26300  GOSUB 630: ONERR  GOTO 26312
  223. 26305  PRINT D$"VERIFYSG,D1"
  224. 26310  ONERR  GOTO 19000
  225. 26311 SG% = 0: RETURN 
  226. 26312  CALL 787:SG% = 1: RETURN 
  227. 26340  FLASH : PRINT : PRINT S2$" SAVED TOURNAMENT ON DISK ": NORMAL : PRINT : PRINT "THIS TOURNAMENT MUST BE CONTINUED AND   RESOLVED BEFORE ANY OTHER MATCHES CAN   TAKE PLACE."
  228. 26350  PRINT : PRINT "RESUME THE TOURNAMENT [Y/N] ? [Y]";: HTAB 32: POKE KB%,0: GET SG$: IF SG$ = ES$  OR SG$ = "N"  THEN  PRINT SG$: POP : GOTO 975
  229. 26360 SG% = 1: PRINT : GOSUB 1500: POP : POKE 34,4: HOME : GOTO 910
  230. 27000  DATA  STRENGTH,AGILITY,QUICKNESS,STAMINA,PERCEPTION,COURAGE,ARMS,LEGS,BODY,WHITE,YELLOW,PURPLE,BLUE,GREEN,BROWN,1ST DEG,2ND DEG,3RD DEG,4TH DEG,5TH DEG,6TH DEG
  231. 27005  DATA  7TH DEG,8TH DEG,9TH DEG,RED BELT,WHITE,2,BLUE,4,BROWN,6,BLACK,15,CHALLENGE,16
  232. 30000 ES$ =  CHR$(27):CL$ = "CLOSE":OM$ = "OPENMT,D1":E = 1:SP$ = " ":KP% =  -16384:KB% =  -16368:D$ =  CHR$(4):LR$(0) = "LEFT":LR$(1) = "RIGHT":DF% = 1
  233. 30010  DIM WE%(1,16),HE%(1,16),RA%(1,16),RA$(16),TW%(1,16),TL%(1,16),NA$(1,16),AG%(1,16),L%(1,16),W%(1,16): RETURN 
  234. 40000  GOSUB 30000:RC$ = "*** RECAP OF THIS ROUND ***":PD% = 16:SF% = 0:PL% = 29:X3$ = "<CTRL-B><CTRL-A>3<CTRL-K>MN<CTRL-D>":HO$ =  CHR$(16):DE% = 0:SG$(0) = "WOULD YOU LIKE TO QUIT":SG$(1) = "SAVE TOURNAMENT AND QUIT"
  235. 40020  DIM S0%(1,1,1):S0%(1,0,0) = 1:S0%(1,0,1) = 2:S0%(1,1,0) = 8:S0%(1,1,1) = 9:S0%(0,0,0) = 1:S0%(0,0,1) = 3:S0%(0,1,0) = 7:S0%(0,1,1) = 8:S7% = 11:S4% = 23:A0% = 255:A1% = 178:A2% = 127
  236. 40030 SK$ = " STRIKE KEY":VT% = 4:X0$ = "<CTRL-B><CTRL-A>29?<CTRL-D>":X1$ = "<CTRL-B><CTRL-A>21=<CTRL-D>":X2$ = "  ":H1%(0) = 16:H1%(1) = 23:KP% =  -16384:KB% =  -16368
  237. 40040 LR$(2) = "<CTRL-S>THE FIGHTERS ARE SIZING EACH OTHER UP.":LR$(3) = "<CTRL-K>THE JUDGES CALL THE FIGHTERS BACK TO  THE CENTER OF THE MAT.<CTRL-L>"
  238. 40050  DIM Q$(4,1),Q%(4),BM%(6,4),BX%(6,4):Q%(0) = 0:Q%(1) =  -20:Q%(2) =  -50:Q%(3) =  -90:Q%(4) =  -9999:Q$(0,0) = "      ":Q$(0,1) = Q$(0,0):Q$(1,0) = "TIRING":Q$(1,1) = Q$(1,0)
  239. 40060 Q$(2,0) = "SHAKY ":Q$(2,1) = " SHAKY":Q$(3,0) = "FADING":Q$(3,1) = Q$(3,0):Q$(4,0) = "DAZED ":Q$(4,1) = " DAZED":OS$ = "OPENSG,D1":DS$ = "DELETESG"
  240. 40070  DIM DM$(1,14),AB%(9,1),WD%(1,16),PO%(1,16),KF%(1,16),TF%(1,16),OF$(9,1),HS$(2,2),BS$(2,2),MI$(2),BL$(2),AK%(6,9),DS%(6,8),RT(9),TZ%(1,16),TE%(16),ST%(1,16),LR%(16)
  241. 40080 DM$(0,0) = "<CTRL-B><CTRL-A>2<CTRL-K>  A  <CTRL-C> BCD <CTRL-C> FGH <CTRL-C> IJK <CTRL-C> LMN <CTRL-D>":DM$(1,0) = "<CTRL-B><CTRL-A>2<CTRL-K>  E  <CTRL-C> OPQ <CTRL-C> RST <CTRL-C> UVW <CTRL-C> XYZ <CTRL-D>":DM$(0,1) = "<CTRL-B><CTRL-A>2    <CTRL-C> 345<CTRL-C> 786<CTRL-C> 0:,<CTRL-C>-# .<CTRL-D>":DM$(1,1) = "<CTRL-B><CTRL-A>2    <CTRL-C>$%& <CTRL-C>'() <CTRL-C>*+/ <CTRL-C>< !><CTRL-D>"
  242. 40090 DM$(0,5) = "<CTRL-B><CTRL-A>2<CTRL-L>    <CTRL-C>CDBM<CTRL-C>GFHK<CTRL-C>IJ  <CTRL-C>LN  <CTRL-D>":DM$(1,5) = "<CTRL-B><CTRL-A>2<CTRL-L>    <CTRL-C>XOQP<CTRL-C>VRTS<CTRL-C>  UW<CTRL-C>  YZ<CTRL-D>":DM$(0,7) = "<CTRL-B><CTRL-A>3<CTRL-L>   <CTRL-C>BCD<CTRL-C>FG <CTRL-C>IJ <CTRL-C>LM <CTRL-D>":DM$(1,7) = "<CTRL-B><CTRL-A>3<CTRL-L>   <CTRL-C>OPQ<CTRL-C> ST<CTRL-C> UV<CTRL-C> YZ<CTRL-D>"
  243. 40100 DM$(0,8) = "<CTRL-B><CTRL-A>31  <CTRL-C>43 <CTRL-C>67 <CTRL-C>892<CTRL-C>0:5<CTRL-D>":DM$(1,8) = "<CTRL-B><CTRL-A>3  +<CTRL-C> !#<CTRL-C> $%<CTRL-C>&'(<CTRL-C>)*=<CTRL-D>":DM$(0,13) = "<CTRL-B><CTRL-A>3<CTRL-K>     <CTRL-C>     <CTRL-C>     <CTRL-C>      <CTRL-C>WX;?YZ<CTRL-D>":DM$(1,13) = "<CTRL-B><CTRL-A>3<CTRL-K>    <CTRL-C>    <CTRL-C>    <CTRL-C>    <CTRL-C>VBFJQU<CTRL-D>"
  244. 40110 DM$(0,9) = "1 A BCDFGHIJKLMN":DM$(1,9) = "1 E OPQRSTUVWXYZ":DM$(0,10) = "11A23C45G6IJKLMN":DM$(1,10) = "11A23C45G61JKLMN"
  245. 40120  RETURN 
  246. 40300  RETURN