home *** CD-ROM | disk | FTP | other *** search
/ 64'er / 64ER_CD.iso / sh0x / sh02.d64 / edi.bas_batch (.txt) < prev    next >
Encoding:
Commodore BASIC  |  1995-03-30  |  8.5 KB  |  247 lines

  1. 0 REM SAVE"@0:BATCH64",8:REM BATCH-VERARBEITUNG AUF C 64 , VERWENDET:
  2. 1 REM  EDI.BAS  ZEILENORIENTIERTER ASCII-TEXT-EDITOR FUER ALLE CBM-RECHNER
  3. 2 REM  VON P. KITTEL , FFM 1985
  4. 4 GOTO200:             REM  COLD START MIT INITIALISIERUNG
  5. 20 BJ=8:BI=CS+1:IFBI>LEN(A$)THENBI=LEN(A$):IFBI=0THENBI=1
  6. 22 GOSUB28:CS=BI-1:IFB1<>13ANDBI<=MLAND((B1<>17)ORK)THEN22
  7. 24 IFB1=13THENRETURN
  8. 25 IFB1=17ANDK=0THENK=B:RETURN
  9. 26 IFLEN(A$)>250THENA$=LEFT$(A$,LEN(A$)-1):IFBI>LEN(A$)THENBI=BI-1:PRINT"[157]";
  10. 27 PRINTBL$;:GOTO22
  11. 28 B1=0:BJ$=MID$(A$,BI,1):BI$=MID$(A$,BI+1,1):IFBJ$=""THENBJ$=" "
  12. 29 IF(ASC(BJ$)AND127)=18THENBJ$=CHR$(ASC("#")+(ASC(BJ$)AND128))
  13. 30 GETB$:IFB$<>""THENPRINT"[146]"BJ$;:GOTO34
  14. 31 BJ=(1+BJ)AND15:PRINTCHR$(18+16*(BJAND8));BJ$;
  15. 32 IFBJ$=G$THENPRINTG$"[157][146]";:IFBI<LEN(A$)ANDBI$<>G$THENPRINTBI$"[157]";
  16. 33 PRINT"[157]";:RETURN
  17. 34 IFBJ$=G$THENPRINTG$"[157]";:IFBI<LEN(A$)ANDBI$<>G$THENPRINTBI$"[157]";
  18. 35 PRINT"[157]";:B=ASC(B$):B1=BAND127:IFB1>31THEN39
  19. 36 IFB1>12THENONB1-12GOTO74,38,38,38,38,87,76,60,38,38,38,38,38,38,38,38,46
  20. 37 REM 13:RETURN,17:VERT,18:REV,19:HOME,20:DEL,29:HORIZ
  21. 38 RETURN
  22. 39 IFBI>MLTHENPRINTBL$;:RETURN
  23. 40 BI=BI+1:IFB=222THENB$=CHR$(255)
  24. 41 PRINTB$;:IFB$=G$THENPRINTG$"[157]";:IFBI<=LEN(A$)ANDBI$<>G$THENPRINTBI$"[157]";
  25. 42 IFBI>2THENB$=LEFT$(A$,BI-2)+B$
  26. 43 B$=B$+MID$(A$,BI)
  27. 44 A$=B$:RETURN
  28. 46 IFB=29THEN54
  29. 48 IFBI>1THENPRINTB$;:BI=BI-1
  30. 50 IFBI<2THENPRINTBL$;
  31. 52 RETURN
  32. 54 IFBI>=MLTHENPRINTBL$;:RETURN
  33. 56 PRINTB$;:BI=BI+1:IFLEN(A$)<BITHENA$=A$+" "
  34. 58 RETURN
  35. 60 IFB=148THEN66
  36. 62 IFBI<2THENPRINTBL$;:RETURN
  37. 63 PRINTB$;:B$=MID$(A$,BI):IFBI>2THENB$=LEFT$(A$,BI-2)+B$
  38. 64 A$=B$:BI=BI-1:RETURN
  39. 66 L=LEN(A$):BJ$=RIGHT$(A$,1):IFL>=MLTHENPRINTBL$;:RETURN
  40. 68 PRINTB$" [157]";:B$=" "+MID$(A$,BI):IFBI>1THENB$=LEFT$(A$,BI-1)+B$
  41. 72 A$=B$:RETURN
  42. 74 PRINT:IFB=13THENB=17:B1=B:BI=1:GOTO81
  43. 75 B=141:RETURN
  44. 76 IFB=19THENPRINTLEFT$(CB$,BI-1);:BI=1:RETURN
  45. 78 IFBI<LEN(A$)THENPRINTSPC(LEN(A$)-BI);:BI=LEN(A$)
  46. 79 IFBI<MLANDRIGHT$(A$,1)<>" "THENBI=BI+1:A$=A$+" ":PRINT"";
  47. 80 RETURN
  48. 81 IFM>=NTHENRETURN
  49. 82 B$=A$(M+1):IFB$=""THENRETURN
  50. 83 IFMID$(B$,BI,1)=" "THENIFBI<LEN(B$)THENBI=BI+1:GOTO83
  51. 84 IFMID$(B$,BI,1)=" "THENBI=1
  52. 85 RETURN
  53. 87 BI=BI+1:IFBI>ML+1THENPRINTBL$;
  54. 88 PRINTCHR$(ASC("#")+(BAND128));:GOTO42
  55. 90 PRINT"LX (X = [218]AHL) = [204]OESCHEN  X [218]EILEN OD.
  56. 91 [153]"EX (X = (null)AHL) = VALINFUEGEN X (null)EILEN OD.
  57. 92 PRINT"H  FUER [200]ILFE ODER":PRINT"-  FUER [193]BBRUCH.
  58. 93 [153]"RIGHT$N DEN (null)EXTZEILEN:":[153]"LENURSORTASTEN UND RIGHT$(null)(null)(null)/STR$VAL(null) NORMAL
  59. 94 PRINT"[211]HIFT-[210]ETURN  = ZURUECK ZU [194]EFEHLSZEILE
  60. 95 [153]"(null)ETURN        = NAECHSTER (null)EILENANFANG
  61. 96 PRINT"[200]OME          = AKTUELLER [218]EILENANFANG
  62. 97 [153]"(null)HIFT-LEFT$OME    = (null)EILENENDE.
  63. 99 PRINT"[212]ASTE DRUECKEN.":FORI=-1TO0:GETA$:I=A$="":NEXT
  64. 100 K=0:PRINT"[147]":N=-N*(N>=0):G$=CHR$(34):BL$=CHR$(7)
  65. 101 PRINT"";TAB(69);M-(M<0)+(M-N)*(M>N)
  66. 102 PRINT"AEND/L[146]OESCH/E[146]INFUEG/H[146]ILFE, [197]NDE MIT - , ";
  67. 103 INPUT"[218]EILENNR./[194]EFEHL(L./E./H) = ";A$:B$=LEFT$(A$,1):IFB$="-"THENRETURN
  68. 104 V=M:IFM<0THENV=0
  69. 105 B=VAL(MID$(A$,2)):IFB$="L"THENB=B+V-1:GOSUB185:M=V:GOTO100
  70. 106 M=VAL(A$):IFB$="E"THEN190
  71. 110 IFM<0ORM>NTHEN100
  72. 111 PRINT"[195]URSOR AKTIV,  [210]ETURN: NAECHSTE [218]EILE,  [203]OMMANDOZ.:";
  73. 112 PRINT" [211]HIFT-[210]ETURN, [218].:"
  74. 113 ES$="."+CHR$(20)+LEFT$(CB$,50):FORI=1TO39-40*C8:PRINT"-";:NEXT:PRINT
  75. 114 IFB$="H"THENPRINT"[194]EFEHLSZEILE:":PRINT"ZU AENDERNDE [218]EILENNR. ODER":GOTO90
  76. 118 I=4-6*C8:ZV=M-I:ZB=M+I+1:IFZV<0THENZV=0:ZB=2*I+1
  77. 119 FORJ=ZVTOZB:IFJ>NTHENA$="":GOTO122
  78. 120 A$=A$(J)
  79. 122 L=LEN(A$):IFL=0THENPRINTLEFT$(CP$,78)ES$:GOTO128
  80. 124 FORBI=1TOL:B$=MID$(A$,BI,1):IFB$=G$THENPRINTG$;CHR$(20);
  81. 125 IF(ASC(B$)AND127)=18THENB$=CHR$(ASC("#")+(ASC(B$)AND128))
  82. 126 PRINTB$;:NEXT
  83. 127 PRINTLEFT$(CP$,78-L);ES$
  84. 128 NEXT
  85. 130 PRINT"":FORI=ZVTOM:PRINT:NEXT
  86. 155 A$=A$(M):L=LEN(A$):IFCS>L-1THENCS=L-1:IFCS<0THENCS=0
  87. 156 PRINTSPC(CS);
  88. 160 GOSUB20
  89. 161 IFLEN(A$)<2THEN169
  90. 162 IFRIGHT$(A$,1)=" "THENA$=LEFT$(A$,LEN(A$)-1):GOTO161
  91. 169 A$(M)=A$:IFK<=0THEN180
  92. 170 M=M+1+2*(K>20):IFM<ZVORM>ZBTHEN100
  93. 171 PRINT""TAB(69);M;"[157]   ":K=0:IFM>NTHENN=M
  94. 172 GOTO130
  95. 180 IFA$(N)=""THENN=N-1:IFN>-1THEN180
  96. 182 GOTO100
  97. 185 IFV<0ORV>BORB>NTHENPRINT"[213]NMOEGLICH!":FORI=1TO200:NEXT:RETURN
  98. 186 M=B-V+1:IFB=NTHEN188
  99. 187 FORI=B+1TON:A$(I-M)=A$(I):NEXT
  100. 188 N=N-M:IFN<MZTHENFORI=N+1TON+M:A$(I)="":NEXT:RETURN
  101. 190 IFB+N>MZORB<1THENV=-1:GOSUB185:GOTO100
  102. 191 FORI=NTOVSTEP-1:A$(I+B)=A$(I):NEXT
  103. 192 FORI=VTOV+B-1:A$(I)="":NEXT:IFCS=0ORCS>=LEN(A$(V+B))THEN199
  104. 193 A$(V)=LEFT$(A$(V+B),CS):A$(V+B)=MID$(A$(V+B),CS+1)
  105. 199 N=N+B:M=V:GOTO100
  106. 200 REM INITIALISIERUNG EDI.BAS: ---------------------------------------------
  107. 210 REM EINFUEHRUNG DER BENUTZTEN VARIABLEN:
  108. 220 DIM A$,B,B$,B1,BI,BJ,BJ$,G$,BI$,BL$,CB$,CP$,CS,ES$,I,J,K,L,M,ML,MZ,N,V,C8
  109. 221 DIM ZB,ZV
  110. 230 MZ=600: REM  MAXIMALE ZEILENZAHL
  111. 240 ML= 77: REM  MAX. ZEICHENZAHL/ZEILE  GGF. PER INPUT (NUR KLEINER MOEGLICH)
  112. 250 N = -1: REM  AKTUELLER FUELLSTAND IN A$()
  113. 251 M = -1: REM  ZULETZT EDIERTE ZEILENNR.
  114. 262 CB$="[157][157][157][157]":FORI=1TO5:CB$=CB$+CB$:NEXT:CB$=CB$+LEFT$(CB$,127):REM CURS BACK
  115. 263 CP$="    ":FORI=1TO5:CP$=CP$+CP$:NEXT:CP$=CP$+LEFT$(CP$,127):REM SPACE
  116. 270 DIMA$(MZ) :REM  TEXT ZEILENWEISE
  117. 280 :          REM  EDITOR MIT GOSUB100 AUFRUFEN
  118. 284 :          REM  TEST AUF 40- BZW. 80-ZEICHEN-SCHIRM:
  119. 285 REM PRINT"[147]"SPC(40)"T";:OPEN1,3:GET#1,A$:CLOSE1:C8=A$=" ":REM S.U.
  120. 290 REM
  121. 299 REM EDI.BAS FERTIG -------------------------------------------------------
  122. 300 PRINT"[145]";:DIMP$(27),N%(27):NP=0:OPEN1,3:REM PARAMETER HOLEN
  123. 301 C=0:FORI=2TO79:GET#1,A$:IFA$=":"THENC=I:I=80
  124. 302 NEXT:IFC=0THENCLOSE1:MP=-1:GOTO350
  125. 310 MP=0:FORP=1TO27:G$="":FG=1:FC=0
  126. 311 FORI=-1TO0:I=-1:GET#1,A$:IFA$=CHR$(34)THENFG=1-FG:GOTO320
  127. 312 C=C+1:IFC>79ORA$=CHR$(13)THENI=0:P$(FC*P)=G$:MP=MP+FC*(P-MP):P=99:GOTO320
  128. 313 IFFGTHENIFA$=","THENI=0:P$(FC*P)=G$:MP=MP+FC*(P-MP):GOTO320
  129. 315 IFFCOR(A$<>" ")THENFC=1:G$=G$+A$
  130. 320 NEXT:NEXT:CLOSE1:IFMP=0THEN350
  131. 330 FORP=1TOMP:IFP$(P)=""THEN335
  132. 331 P$=P$(P):L=LEN(P$)
  133. 332 IFRIGHT$(P$,1)=" "THENL=L-1:P$=LEFT$(P$,L):GOTO332
  134. 333 P$(P)=P$
  135. 335 P$(P-1)=P$(P):NEXT:P$(MP)="":MP=MP-1
  136. 340 NP=-1:FORP=0TOMP:IFP$(P)<>""THENNP=P
  137. 341 NEXT:MP=NP:F$=P$(0):IFF$=""THENF$="-"
  138. 349 REM ZEILE 285 HIERHER VERLEGT:
  139. 350 PRINT"[147]"SPC(40)"T";:OPEN1,3:GET#1,A$:CLOSE1:C8=A$=" ":REM 40/80 ?
  140. 351 PRINT"[147]  [194][160][193][160][212][160][195][160][200][160][146]
  141. 352 FP[178]0:[139]MP[178]0[175]F$[179][177]"-"[175]F$[179][177]""[167]FP[178]1:[137]511
  142. 353 [139]MP[179]0[167]500
  143. 360 [153]"(null)ARAMETER:":[153]"ASCILE: "F$""
  144. 361 [129]P[178]1[164]MP:[139]P$(P)[179][177]""[167][153]"   "[199](P[170]64)": "P$(P)
  145. 362 [130]:[137]510
  146. 500 [153]"(null)AMEN FUER SEQ-(null)OMMANDO-ASCILE EINGEBEN,
  147. 502 PRINT "WENN NOCH KEINES EXISTIERT: EINFACH  -
  148. 505 [133]"ASCILENAME = ";F$
  149. 510 [139]F$[178]"-"[167]520
  150. 511 [153]"ASCILE WIRD EINGELESEN, BITTE CHR$EDULD.
  151. 512 N$=CHR$(0):CR$=CHR$(13):N=-1:OPEN1,8,3,F$
  152. 513 FORZ=-1TO0:G$="":FORI=-1TO0:GET#1,A$:S=ST:A$=LEFT$(A$+N$,1)
  153. 514 I=(S=0)AND(A$<>CR$):IFA$<>CR$THENG$=G$+A$:IFA$="%"THENIFMP>0THENGOSUB1000
  154. 515 NEXT:N=N+1:A$(N)=G$:PRINTG$:Z=S=0:NEXT:CLOSE1:IFMP>0THEN520
  155. 516 IFFPTHEN650
  156. 517 PRINT"[193]ENDERUNGEN NOETIG (J/N) ? ";
  157. 518 GETA$:IFA$<>"J"ANDA$<>"N"THEN518
  158. 519 PRINTA$:IFA$="N"THEN650
  159. 520 PRINT"[198]ILE MUSS MIT EINGEBAUTEM [197]DITOR
  160. 521 [153] "BE/ER-ARBEITET WERDEN.
  161. 522 PRINT "[199]EBEN [211]IE IN DER SPAETEREN [203]OMMANDO-
  162. 523 [153] "ZEILE HWAIT FUER LEFT$ILFE EIN.
  163. 524 PRINT"[200]INWEIS: [205]IT DIESEM [197]DITOR KOENNEN NUR
  164. 525 [153] "         (null)TANDARDZEICHEN, LEN(null) UND (null)(null)(null)
  165. 526 PRINT "         EINGEGEBEN WERDEN, KEINE[146]
  166. 527 [153] "         ANDEREN (null)TEUERZEICHEN!
  167. 528 PRINT"[193]LTERNATIVE: [198]ILE MIT ANDEREM REINEN
  168. 529 [153] "         ATN(null)LENRIGHT$RIGHT$-VALDITOR ERZEUGEN.
  169. 530 PRINT"[196]RIVE FUER [198]ILE-[211]PEICHERUNG (0/1) ? ";
  170. 531 GETD$:IFD$<>"0"ANDD$<>"1"THEN531
  171. 532 PRINTD$:IFMP>0THENMP=0:GOTO550
  172. 540 GOSUB100
  173. 550 FA$=F$:PRINT"[147][198]ILE-[201]NHALT OK (J/N) ? ";
  174. 551 GETA$:IFA$<>"J"ANDA$<>"N"THEN551
  175. 552 PRINTA$:IFA$="N"THEN540
  176. 560 INPUT"[198]ILE-[206]AME FUER [211]PEICHERUNG = ";F$:IFF$="-"THEN560
  177. 570 IFNP>0THENIFF$=FA$THENPRINT"[206]ICHT [208]ARAMETER-[198]ILE UEBERSCHREIBEN!":GOTO560
  178. 600 PRINT"[198]ILE WIRD GESPEICHERT, BITTE [199]EDULD.
  179. 610 [159]1,8,15,"S"[170]D$[170]":"[170]F$:[160]1:[159]1,8,3,(D$[170]":"[170]F$[170]",S,W")
  180. 620 [129]I[178]0[164]N:[152]1,A$(I):[130]:[160]1
  181. 630 [139][195](F$)[179]5[176][201](F$,4)[179][177]".MOT"[167]650
  182. 640 [153]"PEEKITTE MIT (null)ARAMETERANGABE NEU STARTEN.":[128]
  183. 650 M[178]0:[129]I[178]0[164]N:M[178]M[170][195](A$(I))[170]1:[130]
  184. 700 TR[178]55:[143] PLUS/4: 55, 8XXX/40XX: 52
  185. 701 T[178][194](TR)[170]256[172][194](TR[170]1)[171]1:[143] PLUS/4:  IFT>32767THENT=32767
  186. 702 TH[178][181](T[173]256):TL[178]T[171]256[172]TH
  187. 703 LH[178][181](M[173]256):LL[178]M[171]256[172]LH
  188. 704 B[178]T[171]M:BH[178][181](B[173]256):BL[178]B[171]256[172]BH
  189. 710 PA[178]BH:[139]BL[179]122[167]PA[178]PA[171]1
  190. 720 P[178]256[172]PA:[151]P,TL:[151]P[170]1,TH:[151]P[170]2,BL:[151]P[170]3,BH:[151]P[170]4,FP
  191. 721 L[178][195](F$):[139]L[177]16[167]L[178]16
  192. 722 [129]I[178]1[164]L:N%(I)[178][198]([202](F$,I,1)):[130]
  193. 730 [151]P[170]5,L:[129]I[178]1[164]L:[151]P[170]5[170]I,N%(I):[130]
  194. 740 [151]55,0:[151]56,PA
  195. 750 [156]
  196. 800 A$[178]"":I[178]0:N$[178][199](0)
  197. 805 TR[178]55:[143] PLUS/4: 55, 8XXX/40XX: 52
  198. 810 M[178][194](TR[170]1):P[178]256[172]M
  199. 815 TL[178][194](P):TH[178][194](P[170]1):BL[178][194](P[170]2):BH[178][194](P[170]3):FP[178][194](P[170]4)
  200. 820 L[178][194](P[170]5):F$[178]"":[129]I[178]1[164]L:F$[178]F$[170][199]([194](P[170]5[170]I)):[130]
  201. 830 T[178]TL[170]256[172]TH
  202. 835 [153]"ASCILE "F$" WIRD NOCH EINMAL
  203. 836 PRINT"EINGELESEN, BITTE [199]EDULD.
  204. 840 [159]1,8,3,F$:[129]I[178][171]1[164]0:[161]#1,A$:I[178]ST[178]0:[151]T,[198](A$[170]N$):T[178]T[171]1:[130]:[160]1
  205. 850 [140]:[135]N
  206. 860 [129]I[178]0[164]N:[135]A:[139]A[179]0[167]A[178]M
  207. 861 [151]P[170]I,A:[130]
  208. 870 [151]P[170] 71,TL:[151]P[170] 72,TH
  209. 871 [151]P[170]118,BL:[151]P[170]119,BH
  210. 900 [153]"PEEKATCH-MID$OB MIT    SYS"P"    STARTEN:
  211. 910 IFFPTHENPRINT:SYSP:END
  212. 920 PRINT"SYS"P"[145][145][145]"
  213. 999 END
  214. 1000 GET#1,A$:S=ST:A$=LEFT$(A$+N$,1):A=ASC(A$)
  215. 1010 FORP=1TOMP:IFA=P+64THENG$=LEFT$(G$,LEN(G$)-1)+P$(P):P=MP:A=-1
  216. 1011 NEXT:IFA>-1THENG$=G$+A$
  217. 1020 I=(S=0)AND(A$<>CR$):RETURN
  218. 6000 A=7*4096:FORZ=0TO13:PRINTA;"DATA";
  219. 6010 FORI=0TO7:PE=PEEK(A):A=A+1:IFI>0THENPRINT",";
  220. 6020 PRINT" ";RIGHT$("00"+MID$(STR$(PE),2),3);:NEXT:PRINT:NEXT
  221. 6030 END
  222. 7000 RESTORE:READN:A=28672
  223. 7010 FORI=0TON:READP:IFABS(P)=112THENPRINTCHR$(18-(P<0)*128);A+(IAND248),
  224. 7020 NEXT:END
  225. 8000 REM"  [194]ENUTZTE [205]ASCHINENADRESSEN:
  226. 8010 [143]"  55-56    (null)OINTER (null)OP OF (null)ATN(null)
  227. 8020 REM"  $0314    [208]OINTER [201][210][209]-[210]OUTINE
  228. 8030 [143]"  $0277    VALRSTES PEEKYTE (null)ASTATURPUFFER
  229. 8040 REM"  $C6      [193]NZAHL [194]YTES IM [212]ASTATURPUFFER
  230. 28600 [143]  SOURCE-FILE:  IRQBAT.SRC
  231. 28666 [131] 119
  232. 28672 [131] 120, 173, 020, 003, 141, 116,-112, 173
  233. 28680 [131] 021, 003, 141, 117,-112, 169, 051, 141
  234. 28688 [131] 020, 003, 169,-112, 141, 021, 003, 088
  235. 28696 [131] 096, 189, 005, 001, 041, 252, 201, 044
  236. 28704 [131] 208, 017, 189, 006, 001, 201, 249, 208
  237. 28712 [131] 010, 169, 052, 157, 005, 001, 169, 249
  238. 28720 [131] 157, 006, 001, 165, 198, 240, 013, 201
  239. 28728 [131] 002, 176, 044, 173, 119, 002, 201, 003
  240. 28736 [131] 240, 037, 208, 047, 230, 198, 173, 255
  241. 28744 [131] 255, 141, 119, 002, 173, 071,-112, 208
  242. 28752 [131] 003, 206, 072,-112, 206, 071,-112, 173
  243. 28760 [131] 071,-112, 205, 118,-112, 208, 020, 173
  244. 28768 [131] 072,-112, 205, 119,-112, 208, 012, 173
  245. 28776 [131] 116,-112, 141, 020, 003, 173, 117,-112
  246. 28784 [131] 141, 021, 003, 076, 255, 255, 000, 000
  247.