Unbekannte Funktion. Weder sehe ich hier aus dem Quelltext heraus, was für ein Text konvertiert
werden soll, noch was während der Konvertierung verändert werden soll.
Doku lesen:
KONV.7 konvertiert Texte, z.B. von MicroWORD, in ein BASIC-
Feld. Dabei wird 1EH in 0DH umgewandelt, der Seitenvorschub 0CH
Steuerung: ⇦ ⇨ B
Zeichensatz UTF-8+Z1013()+CTRL()-ohne Umlaute(äöüß)
10 WINDOW:CLS:CLEAR:PRINT AT(5,8);"Textkonvertierung"
20 PRINT AT(6,12);"Vers. 7":TX=0
30 PRINT AT(9,9);"Z 1013 --> BASIC"
40 PRINT AT(11,8);"* 32K o.groesser *"
45 PRINT AT(12,9);"(mit Tonausgabe)"
50 PRINT AT(20,0);"(C) Dr.Trog,H-J;Berlin,Febr.1989"
55 PRINT AT(15,1);"(Bei 32K ohne,>32K mit Header)"
56 PRINT AT(16,1);"(ohne Sprungverteiler Zeile 1740 aendern)":GOSUB 910
60 WINDOW:CLS:PRINT:PRINT "Text laden = #":I=1
70 PRINT "Feld einrichten= "
80 PRINT "Feld ansehen = "
90 PRINT "Feld saven = "
100 PRINT "Feld laden = "
110 PRINT "Beenden = "
120 GOSUB 1560:WINDOW:CLS
130 ON I GOTO 150,320,600,690,840,140
140 CLS:PRINT:PRINT "zurueck ohne Textverlust mit"
142 PRINT " ** GOTO 60 **":PRINT:PRINT:END
150 CLEAR:D=0:B=0:INPUT "Alte AADR.";H$:INPUT " EADR.";J$:FOR I=1 TO LEN(H$)
160 Z=ASC(MID$(H$,I,1))
170 IF Z<58 THEN Z=Z-48:ELSE Z=Z-55
180 D=Z+D*16:NEXT I
190 FOR T=1 TO LEN(J$)
200 K=ASC(MID$(J$,T,1))
210 IF K<58 THEN K=K-48:ELSE K=K-55
220 B=K+B*16:NEXT T
225 GOSUB 1870
230 C=B-D:F=SE-C:G=SE-C
232 IF SP>1 THEN F=32255-C:G=32255-C:PF=1
240 M$=""
250 R=F-INT(F/16)*16
260 IF R<10 THEN M$=CHR$(48+R)+M$:ELSE M$=CHR$(55+R)+M$
270 IF F>15 THEN F=INT(F/16):GOTO 250
275 IF PF=1 THEN PRINT:PRINT "NEU =";M$;"- 7DFF":GOTO 290
280 PRINT:PRINT "NEU =";M$;"-";DX$
290 IF M$<"5000"THEN PRINT:PRINT "Zu lang !":PAUSE 50:GOTO 60
295 IF PF=1 THEN GOSUB 1800:GOTO 60
300 GOSUB 1700
310 GOTO 60
320 GOTO 1490
330 CLS:D=0:FOR I=1 TO LEN(M$)
340 IF M$=""THEN PRINT "keine Anfangsadresse!!":PRINT:GOSUB 910:GOTO 60
350 Z=ASC(MID$(M$,I,1))
360 IF Z<58 THEN Z=Z-48:ELSE Z=Z-55
370 D=Z+D*16:NEXT I
380 IF WW=5 THEN 740
390 CLS:AA=0
400 GOSUB 990
410 GOSUB 1420
420 GOSUB 1470
430 I=0:IF W=1 THEN FOR E=H TO SE:ELSE FOR E=D TO SE
440 IF E>32767 THEN 450:ELSE 490
450 UU=65536-E
460 I=I+1:A(I)=PEEK(-UU):PRINT CHR$(PEEK(-UU));
470 IF PEEK(-UU)=13 THEN AA=AA+1:IF AA=BB THEN 540
480 GOTO 510
490 I=I+1:A(I)=PEEK(E):PRINT CHR$(PEEK(E));
500 IF PEEK(E)=13 THEN AA=AA+1:IF AA=BB THEN 535
510 IF I=NN THEN 535
520 PRINT AT(1,12);AA
530 NEXT E
535 IF A(I)=12 THEN A(I)=13
540 PRINT AT(30,5);"SAVEN=S / MENUE=M"
550 I$=INKEY$:IF I$=""THEN BEEP:PAUSE 2:GOTO 550
560 IF I$="S"THEN 940
570 IF I$="M"THEN 60
580 GOTO 550
590 GOTO 60
600 IF I>0 THEN I=1
605 IF TX=0 THEN 1850
610 I=1:X=0:CLS:FOR I=1 TO NN:PRINT CHR$(A(I));:IF A(I)=13 THEN X=X+1
620 IF X=15 THEN X=0:GOSUB 900:ELSE 640
630 CLS:GOTO 660
640 IF I=NN THEN GOSUB 910:ELSE 660
650 GOTO 60
660 NEXT I
670 GOSUB 910
680 GOTO 60
690 PRINT:IF TX=0 THEN 1850
695 GOSUB 980:PRINT
700 PAUSE 5:PRINT "FELDLAENGE MERKEN:";NN:PRINT:PRINT "Start = S":PRINT
710 I$=INKEY$:IF I$=""THEN 710
720 IF I$<>"S"THEN 710
730 CSAVE*""+D$;A
740 WW=5:H=0:PRINT:PRINT "(M)enue (F)eld einr./saven (N)eu":PRINT
750 I$=INKEY$:IF I$=""THEN 750
760 IF I$="M"THEN 800
770 IF I$="F"THEN 820
780 IF I$="N"THEN 810
790 GOTO 750
800 GOTO 60
810 GOTO 10
820 CLEAR:INPUT "Eingabe von H:";H:E=H
822 GOSUB 1870
825 IF SP>1 THEN PF=1:SE=32255:GOTO 830
827 GOSUB 1870
830 W=1:I=1:IF H>=SE OR H<20223 THEN 60:ELSE 390
840 CLEAR:CLS:GOSUB 980:PRINT
850 INPUT "Feldlaenge?";NN:DIM A(NN):PRINT:PAUSE 5:PRINT "Start = S":PRINT
860 I$=INKEY$:IF I$=""THEN 860
870 IF I$<>"S"THEN 860
880 CLOAD*""+D$;A
890 GOTO 60
900 PRINT AT(30,10);"(M)enue /"
910 PRINT AT(30,20);">ENTER<"
920 I$=INKEY$:IF I$=""THEN 920
925 IF I$="M"THEN 60
930 IF I$<>CHR$(13)THEN 920:ELSE RETURN
940 WINDOW:CLS:PRINT:PRINT "( --> H =";E+1;")":PRINT
945 PRINT "Abspeichern --> A ":PRINT:PRINT
950 V$=INKEY$:BEEP:PAUSE 2:IF V$=""THEN 950
960 IF V$="A"THEN 690
970 IF V$<>"A"THEN 950
980 INPUT "Dateiname:";D$:RETURN
990 IF W=1 THEN D=H
1000 MM=INT((D-13050)/5):ZV=0
1010 IF MM>7000 THEN MM=7000
1015 TE=SE-D:IF PF=1 THEN TE=32255-D
1020 EN=-(65536-SE):IF D>32767 THEN D=-(65536-D)
1025 IF PF=1 THEN EN=32255
1030 GOSUB 1415:GOSUB 1460:GOSUB 1540
1035 FOR I=17664 TO 17679:POKE I,00:NEXT
1040 DOKE 17664,D:DOKE 17668,EN:POKE 17673,ZS:DOKE 17678,MM
1045 IF ZS=0 THEN POKE 17674,32
1050 RESTORE 1950:FOR X=17920 TO 18077:READ A$
1055 A=ASC(LEFT$(A$,1))-48:IF A>9 THEN A=A-7
1060 B=ASC(RIGHT$(A$,1))-48:IF B>9 THEN B=B-7
1065 POKE X,A*16+B:NEXT
1070 CALL*4600:WINDOW:CLS:GOSUB 1415:GOSUB 1460
1075 BB=DEEK(17670):QB=PEEK(17672)
1076 IF ZS=0 THEN 1080
1077 QQ=BB/ZS:QB=INT(10^2*QQ+0.5)/10^2
1080 KK=DEEK(17675)
1081 IF KK=0 THEN KK=DEEK(17666)
1082 IF D<0 THEN D=65536+D
1083 IF KK>0 THEN 1085
1084 KK=65536+KK
1085 NN=KK-D:DIM A(NN):GOTO 1370
1370 CLS:PRINT:PRINT BB;"Zeilen !(Soll=";ZS;"Z./Seite)":PRINT
1390 PRINT QB;"Seiten":PRINT:PRINT TE-NN;"Zeichen Rest":PRINT:PRINT
1400 PRINT " Feldlaenge:";NN:PRINT AT(20,20);">ENTER<":GOSUB 1860:ZV=0
1410 TX=1:WINDOW:CLS:RETURN
1415 WINDOW 0,5,0,31:CLS:WINDOW 6,29,0,31:CLS:GOSUB 1440:RETURN
1420 WINDOW 0,5,0,31:CLS:WINDOW 6,29,0,31:CLS:GOSUB 1440
1430 PRINT AT(1,5);"Zeile:":PRINT AT(1,20);"(von )":PRINT AT(1,24);BB:RETURN
1440 PRINT AT(2,0);"********************************"
1450 RETURN
1460 PRINT AT(1,0);"FELD DIMENSIONIEREN Aadr.= ",M$:RETURN
1470 PRINT AT(4,5);"FELD WIRD EINGERICHTET"
1480 PRINT AT(5,0);"++++++++++++++++++++++++++++++++":RETURN
1490 CLS:PRINT:PRINT "Neuer Text? J ":PRINT
1500 I$=INKEY$:IF I$=""THEN 1500
1510 IF I$<>"N"THEN 330
1515 PRINT:PRINT "H --> ";E+1
1520 PAUSE 5:PRINT:I$=" ":GOTO 740
1530 END
1540 ZS=72:PRINT:PRINT "Wieviel Zeilen/Seite? (72)"
1542 PRINT:PRINT "ist Seitenvorschub (0CH) schon"
1544 PRINT "im Text, dann eingeben: 0"
1545 PRINT:PRINT "> 0 < = mit 0CH"
1546 PRINT:PRINT ">ENTER< = 72 Zeilen":PRINT
1548 INPUT "Eingabe --> ";ZS
1550 CLS:RETURN
1560 WINDOW 18,25,0,31:CLS
1570 PRINT "*** Cursor positionieren und ***"
1580 PRINT:PRINT " (B) estaetigen !"
1585 PRINT:PRINT "(=^J o. Cursor =^K o. Cursor)"
1590 PRINT AT(25,0);" "
1600 O$=INKEY$:IF O$=""THEN PRINT AT(I,17);" ":PRINT AT(I,17);"#":GOTO 1600
1610 PAUSE 2
1620 IF O$="B"OR O$="b"THEN RETURN
1630 PRINT AT(I,17);" "
1640 IF O$=CHR$(11) THEN I=I-1:IF I=0 THEN I=1
1650 IF O$=CHR$(10)THEN I=I+1:IF D=1 THEN 1660:ELSE 1670
1660 IF I>5 THEN I=5:GOTO 1680
1670 IF I>6 THEN I=6
1680 PRINT AT(I,17);"#"
1690 GOTO 1600
1700 PRINT:PRINT "Tonband fertig und ENTER":PRINT:GOSUB 920
1710 IF G>32767 THEN 1720:ELSE 1730
1720 FF=65536-G:DOKE 27,-FF:GOTO 1740
1730 DOKE 27,G
1740 CALL*FB96
1750 PRINT AT(25,10);"F E R T I G >ET<":GOSUB 920
1760 RETURN
1800 PRINT:PRINT "Tonband fertig und ENTER":PRINT "(ohne Header)"
1805 GOSUB 920:PRINT:PRINT "L A D E N !"
1810 DOKE 27,G:DOKE 29,32255
1820 CALL*F3F8
1830 PRINT AT(25,10);"F E R T I G >ET<":GOSUB 920
1840 RETURN
1850 PRINT:PRINT "Kein Text!":GOSUB 910:GOTO 60
1860 I$=INKEY$:BEEP:PAUSE 2:IF I$=""THEN 1860
1865 RETURN
1870 SP=DEEK(11184):SE=(65536-ABS(SP))-2048:REM SP=SPEICHERENDE BASIC
1880 ST=SE
1890 DX$=""
1900 T=ST-INT(ST/16)*16
1910 IF T<10 THEN DX$=CHR$(48+T)+DX$:ELSE DX$=CHR$(55+T)+DX$
1920 IF ST>15 THEN ST=INT(ST/16):GOTO 1900
1930 RETURN
1940 END
1950 DATA ED,4B,0E,45,2A,00,45,C3,2A,46,E5,D5,2A,02,45,ED,5B,04,45,7D
1960 DATA BB,20,04,7C,BA,28,31,D1,E1,0B,3E,00,B8,20,03,B9,28,2E,2A,02
1970 DATA 45,23,22,02,45,7E,E7,00,FE,1E,28,21,FE,0D,28,1D,3A,0A,45,FE
1980 DATA 00,28,05,7E,FE,0C,28,4A,7D,BB,20,C2,7C,BA,20,BE,D1,E1,2A,04,45,22
1990 DATA 0B,45,C9,3A,0A,45,FE,00,20,11,C5,3A,0D,45,47,3A,09,45,B8,28,12,78
2000 DATA 3C,32,0D,45,C1,3E,0D,77,2A,06,45,23,22,06,45,18,CB,C1,3E,00,32,0D
2010 DATA 45,2A,02,45,22,0B,45,3A,08,45,3C,32,08,45,18,DF,2A,08,45,23
2020 DATA 22,08,45,2A,02,45,22,0B,45,18,A7,00
2030 END