home *** CD-ROM | disk | FTP | other *** search
/ 64'er / 64ER_CD.iso / sh3x / sh30b.d64 / kern.bas (.txt) < prev    next >
Commodore BASIC  |  1995-03-30  |  6KB  |  242 lines

  1. 100 REM KRIEG DER KERNE
  2. 101 REM
  3. 102 REM NACH SPEKTRUM DER WISSENSCHAFT
  4. 103 REM 8/84
  5. 104 REM
  6. 105 REM MARTIN ROGGE, MOELLENHOLT 24
  7. 106 REM 2300 KIEL 1
  8. 107 REM 11.06.87
  9. 108 :
  10. 109 GOTO1000
  11. 110 :
  12. 150 A$=""
  13. 160 LL=5:GOTO200
  14. 170 LL=16
  15. 200 PRINTA$;"[164][157]";
  16. 210 GETB$:IFB$=""GOTO210
  17. 215 B=ASC(B$):IFB>95ORB=34GOTO210
  18. 220 IFB=13THENPRINT" ":RETURN
  19. 230 IFB<>20GOTO260
  20. 240 IFLEN(A$)<1GOTO210
  21. 250 A$=LEFT$(A$,LEN(A$)-1):PRINT" [157][157][164][157]";:GOTO210
  22. 260 IFB<32GOTO210
  23. 270 IFLEN(A$)<LLTHENA$=A$+B$:PRINTB$"[164][157]";:GOTO210
  24. 280 A$=LEFT$(A$,LEN(A$)-1)+B$:PRINT"[157]"B$;:GOTO210
  25. 290 :
  26. 1000 DATA DAT,MOV,ADD,SUB,JMP,JMZ,JMN,DJN,DJZ,CMP,SPL
  27. 1200 POKE53280,0:POKE53281,0
  28. 1210 DIM F$(1,255),L(1),N$(1),W(2),B(4)
  29. 1220 FORI=0TO10:READB$(I):NEXT:L(0)=-1:L(1)=-1
  30. 1230 F(0)=28928:F(1)=30208:BA=7*4096:KF=31488
  31. 1240 :
  32. 1500 PRINT"[158][147]","                 "
  33. 1510 PRINT," KRIEG DER KERNE "
  34. 1520 PRINT,"                 "
  35. 1530 PRINT,"1 - EDITOR"
  36. 1540 PRINT,"2 - KAEMPFER LADEN"
  37. 1550 PRINT,"3 - KAEMPFER SPEICHERN"
  38. 1560 PRINT,"4 - KAMPF STARTEN"
  39. 1562 PRINT,"5 - SPEICHER LISTEN"
  40. 1565 PRINT,"6 - ENDE"
  41. 1570 GETA$:IFA$<"1"ORA$>"6"GOTO1570
  42. 1580 ONVAL(A$)GOTO8000,6000,7000,2000,9500
  43. 1590 :
  44. 1600 PRINT"[147]":END
  45. 1610 :
  46. 2000 PRINT"[147]KAEMPFER A: "N$(0)
  47. 2010 K=0:GOSUB3000:IFFGOTO2340
  48. 2100 PRINT"KAEMPFER B: "N$(1)
  49. 2110 K=1:GOSUB3000:IFFGOTO2340
  50. 2120 PRINT"WIEVIELE ZUEGE PRO KAMPF ? ";:A$="10000":GOSUB160:Z=VAL(A$)
  51. 2130 POKEBA+13,Z/256:POKEBA+12,Z-256*PEEK(BA+13)
  52. 2140 PRINT"WIEVIELE KAEMPFE ? ";:A$="1":GOSUB160:Y=VAL(A$)
  53. 2150 POKEBA+8,L(0):POKEBA+9,L(1):D=999-L(0)-L(1)
  54. 2160 W(0)=0:W(1)=0:W(2)=0
  55. 2170 FORI=1TOY:SYS26624
  56. 2175 FORJ=0TO7:POKEBA+J,0:NEXT
  57. 2180 X=INT(D*RND(1))+L(0)+1:POKE38913,X/256:POKE38912,X-256*PEEK(38913)
  58. 2190 A=USR(0):W(A)=W(A)+1
  59. 2200 NEXT
  60. 2205 POKE53280,11:GOSUB5540:POKE53280,0
  61. 2300 PRINT"[147]ERGEBNIS:"
  62. 2310 PRINT""N$(0):PRINT"[145]"SPC(18)W(1)
  63. 2320 PRINT""N$(1):PRINT"[145]"SPC(18)W(2)
  64. 2330 PRINT"UNENTSCHIEDEN     "W(0)
  65. 2340 PRINT"":GOSUB5530:GOTO1500
  66. 2350 :
  67. 3000 IFL(K)<0THENPRINT"COMPILATION ERROR: KEIN QUELLCODE.":F=-1:RETURN
  68. 3005 F=0:FORI=0TOL(K)
  69. 3010 A$=F$(K,I):GOSUB4000:IFLEN(A$)<4GOTO3900
  70. 3030 B$=LEFT$(A$,3)
  71. 3040 FORJ=0TO10:IFB$=B$(J)THENX=J:J=12
  72. 3050 NEXT:IFJ<12THENF=-1:GOTO3900
  73. 3060 A$=MID$(A$,4):GOSUB4000
  74. 3070 ONXGOTO3400,3400,3400,3500,3600,3600,3800,3800,4200,3500
  75. 3080 GOSUB4700:IFFGOTO3900
  76. 3090 ZQ%=VO*ZA:ZZ%=0:AQ=0:AZ=0
  77. 3100 B(0)=XOR48ORK*64OR((X>0)AND128)
  78. 3110 B(1)=ZQ%-256*INT(ZQ%/256)
  79. 3120 B(2)=((ZQ%/256)AND15)ORAQ*64
  80. 3130 B(3)=ZZ%-256*INT(ZZ%/256)
  81. 3140 B(4)=((ZZ%/256)AND15)ORAZ*64
  82. 3150 FORJ=0TO4:POKEF(K)+256*J+I,B(J):NEXT
  83. 3160 NEXT:PRINT"COMPILATION COMPLETE, NO ERROR.":RETURN
  84. 3170 :
  85. 3400 GOSUB4600:IFFGOTO3900
  86. 3405 AQ=AA:ZQ%=VO*ZA
  87. 3410 GOSUB4800:IFFGOTO3900
  88. 3415 AZ=AA:ZZ%=VO*ZA:GOTO3100
  89. 3420 :
  90. 3500 GOSUB4800:IFFGOTO3900
  91. 3505 ZQ%=VO*ZA:ZZ%=0:AQ=AA:AZ=0:GOTO3100
  92. 3510 :
  93. 3600 GOSUB4800:IFFGOTO3900
  94. 3605 AQ=AA:ZQ%=VO*ZA
  95. 3610 GOSUB4600:IFFGOTO3900
  96. 3615 AZ=AA:ZZ%=VO*ZA:GOTO3100
  97. 3620 :
  98. 3800 GOSUB4800:IFFGOTO3900
  99. 3805 AQ=AA:ZQ%=VO*ZA
  100. 3810 GOSUB4800:IFFGOTO3900
  101. 3815 AZ=AA:ZZ%=VO*ZA:GOTO3100
  102. 3820 :
  103. 3900 X=I:I=L(K):NEXT:PRINT"COMPILATION ERROR IN LINE"X:F=-1:RETURN
  104. 3910 :
  105. 4000 IFLEFT$(A$,1)=" "THENA$=MID$(A$,2):GOTO4000
  106. 4010 RETURN
  107. 4020 :
  108. 4200 GOSUB4600:IFFGOTO3900
  109. 4205 AQ=AA:ZQ%=VO*ZA
  110. 4210 GOSUB4600:IFFGOTO3900
  111. 4215 AZ=AA:ZZ%=VO*ZA:GOTO3100
  112. 4220 :
  113. 4500 B$=LEFT$(A$,1):A$=MID$(A$,2)
  114. 4505 IFB$=" "ORB$=""THENM=-2:RETURN
  115. 4530 IFB$<"0"ORB$>"9"THENM=-1:RETURN
  116. 4540 M=VAL(B$):RETURN
  117. 4550 :
  118. 4600 AA=1:B$=LEFT$(A$,1):IFB$="#"THENAA=0:A$=MID$(A$,2)
  119. 4610 IFB$="@"THENAA=2:A$=MID$(A$,2)
  120. 4620 :
  121. 4700 VO=1:B$=LEFT$(A$,1):IFB$="-"THENVO=-1
  122. 4710 IFB$="+"ORB$="-"THENA$=MID$(A$,2)
  123. 4720 GOSUB4500:IFM<0ORM>9THENF=-1:RETURN
  124. 4730 ZA=M
  125. 4740 GOSUB4500:IFM=-2GOTO4770
  126. 4750 IFM<0ORM>9THENF=-1:RETURN
  127. 4760 ZA=10*ZA+M:GOTO4740
  128. 4770 IFZA>999THENF=-1
  129. 4780 RETURN
  130. 4790 :
  131. 4800 GOSUB4600:IFAA=0THENF=-1
  132. 4810 RETURN
  133. 4820 :
  134. 5000 PRINT"[147]KAEMPFER A ODER B ? ";
  135. 5010 GETA$:IFA$="A"THENK=0:GOTO5040
  136. 5020 IFA$<>"B"GOTO5010
  137. 5030 K=1
  138. 5040 PRINTA$:RETURN
  139. 5050 :
  140. 5500 F=0:INPUT#1,V$,W$,X$,Y$:IFVAL(V$)<9THENRETURN
  141. 5510 PRINT"DISK-ERROR:":F=-1
  142. 5520 PRINTV$":"W$":"X$":"Y$
  143. 5530 PRINT"<CR> DRUECKEN"
  144. 5540 GETA$:IFA$<>CHR$(13)GOTO5540
  145. 5550 RETURN
  146. 5560 :
  147. 6000 GOSUB5000 :REM LADEN
  148. 6010 PRINT"NAME: ";:A$="":GOSUB170:N$(K)=A$
  149. 6020 OPEN1,8,15:PRINT#1,"I0":GOSUB5500:IFFGOTO6900
  150. 6030 OPEN2,8,2,N$(K):GOSUB5500:IFFGOTO6900
  151. 6040 L(K)=-1
  152. 6050 L(K)=L(K)+1:INPUT#2,F$(K,L(K)):IFST=0GOTO6050
  153. 6060 GOSUB5500
  154. 6900 CLOSE2:CLOSE1:GOTO1500
  155. 6910 :
  156. 7000 GOSUB5000 :REM SPEICHERN
  157. 7020 OPEN1,8,15:PRINT#1,"I0":GOSUB5500:IFFGOTO6900
  158. 7025 PRINT"NAME: ";:A$=N$(K):GOSUB170:N$(K)=A$
  159. 7030 OPEN2,8,2,N$(K)+",S,W":GOSUB5500:IFFGOTO6900
  160. 7035 PRINT""N$(K)" WIRD GESPEICHERT."
  161. 7040 FORI=0TOL(K)
  162. 7050 PRINT#2,CHR$(34)F$(K,I):NEXT
  163. 7060 GOTO6060
  164. 7070 :
  165. 8000 GOSUB5000:EZ=0
  166. 8100 PRINT"[147]NAME: "N$(K):PRINT
  167. 8110 FORI=EZTOEZ+9:IFI>L(K)THENF$(K,I)=""
  168. 8120 PRINT""RIGHT$("  "+STR$(I),4)" [146]  "F$(K,I)
  169. 8130 NEXT
  170. 8140 PRINT"S[146]CHREIBEN"
  171. 8150 PRINT"L[146]OESCHEN"
  172. 8160 PRINT"A[146]ENDERN"
  173. 8170 PRINT"D[146]RUCKEN"
  174. 8180 PRINT"U[146]MBENENNEN"
  175. 8190 PRINT"+/-"
  176. 8200 PRINT"E[146]NDE"
  177. 8210 GETA$:FORI=1TO8:IFA$=MID$("+-ESLADU",I,1)THENA=I:I=9
  178. 8220 NEXT:IFI<10GOTO8210
  179. 8230 ONAGOTO8300,8400,1500,8600,8800,9000,9200,9400
  180. 8240 :
  181. 8300 IFEZ<231THENEZ=EZ+10:GOTO8100
  182. 8310 GOTO8210
  183. 8320 :
  184. 8400 IFEZ>9THENEZ=EZ-10:GOTO8100
  185. 8410 GOTO8210
  186. 8420 :
  187. 8600 PRINT"SCHREIBEN AB ZEILE: ";:GOSUB150:AA=VAL(A$)
  188. 8610 IFAA<0ORAA>L(K)+1GOTO8100
  189. 8620 PRINT"[147]ABBRUCH DURCH EINE LEERZEILE.":LL=30
  190. 8630 IFL(K)>248GOTO8100
  191. 8635 PRINT""RIGHT$("  "+STR$(AA),4)" [146]  ";
  192. 8640 A$="":GOSUB200:IFA$=""GOTO8100
  193. 8650 IFAA>L(K)THENF$(K,AA)=A$:AA=AA+1:L(K)=L(K)+1:GOTO8630
  194. 8660 FORI=L(K)TOAASTEP-1:F$(K,I+1)=F$(K,I):NEXT:L(K)=L(K)+1
  195. 8670 F$(K,AA)=A$:AA=AA+1:GOTO8630
  196. 8680 :
  197. 8800 PRINT"LOESCHEN VON ZEILE: ";:GOSUB150:AA=VAL(A$)
  198. 8810 PRINT"         BIS ZEILE: ";:GOSUB150:BB=VAL(A$)
  199. 8820 IFBB<AAORAA<0ORAA>L(K)GOTO8100
  200. 8830 IFBB=>L(K)THENL(K)=AA-1:GOTO8100
  201. 8840 D=BB+1-AA:FORI=BB+1TOL(K):F$(K,I-D)=F$(K,I):NEXT
  202. 8850 L(K)=L(K)-D:GOTO8100
  203. 8860 :
  204. 9000 PRINT"AENDERN VON ZEILE: ";:GOSUB150:AA=VAL(A$)
  205. 9010 IFAA<EZORAA>EZ+9ORAA>L(K)GOTO8100
  206. 9020 PRINT""
  207. 9030 FORI=0TOAA-EZ:PRINT:NEXT
  208. 9040 PRINT"";:A$=F$(K,AA):LL=30
  209. 9050 GOSUB200:F$(K,AA)=A$:GOTO8100
  210. 9060 :
  211. 9200 PRINT"[147]":OPEN4,4,0
  212. 9205 PRINT#4,"NAME: "N$(K):PRINT#4
  213. 9210 FORI=0TOL(K)
  214. 9220 PRINT#4,RIGHT$("  "+STR$(I),4)"  "F$(K,I)
  215. 9230 NEXT
  216. 9240 CLOSE4:GOTO8100
  217. 9250 :
  218. 9400 PRINT"NAME: ";:A$=N$(K):GOSUB170:N$(K)=A$:GOTO8100
  219. 9410 :
  220. 9500 PRINT"[147]ABBRUCH DURCH _"
  221. 9510 FORI=0TO999:PRINT""RIGHT$("  "+STR$(I),4)" [146]  ";
  222. 9515 ZA=PEEK(KF+5*I)
  223. 9520 IFZA=0GOTO9800
  224. 9525 PRINT"";:IF(ZAAND64)THENPRINT"";
  225. 9530 ZA=ZAAND15:PRINTB$(ZA)" ";
  226. 9537 AQ=INT(PEEK(KF+5*I+2)/64):Q=256*(PEEK(KF+5*I+2)AND15)+PEEK(KF+5*I+1)
  227. 9538 IFQ>2047THENQ=Q-4096
  228. 9539 A$="":IFZA=0GOTO9555
  229. 9540 IFAQ=0THENA$="#"
  230. 9550 IFAQ=2THENA$="@"
  231. 9555 L=2:IFQ<0THENL=1
  232. 9560 PRINTA$MID$(STR$(Q),L)" ";
  233. 9570 IFZA=0ORZA=4ORZA=10GOTO9800
  234. 9575 AZ=INT(PEEK(KF+5*I+4)/64):Z=256*(PEEK(KF+5*I+4)AND15)+PEEK(KF+5*I+3)
  235. 9577 IFZ>2047THENZ=Z-4096
  236. 9580 A$="":IFAZ=0THENA$="#"
  237. 9590 IFAZ=2THENA$="@"
  238. 9595 L=2:IFZ<0THENL=1
  239. 9600 PRINTA$MID$(STR$(Z),L)" ";
  240. 9800 PRINT"[158]":GETA$:IFA$="_"THENI=999
  241. 9810 NEXT:GOSUB5530:GOTO1500
  242.