Verwendete IO-Ports bzw. Hardware:
Vorläufer von [655cd70ffef49ba251b1405f59e72253]
mit Bugfix für 64KByte RAM
Zeichensatz UTF-8+Z1013()+CTRL()-ohne Umlaute(äöüß)
0 POKE 11102,1:!Programm an Z 1013 mit 64 kByte RAM angepasst!
1 CLEAR 64,-20000
2 WINDOW:CLS:S=32:GOSUB 58:CLEAR 64:IF FRE(X)<4000 THEN 110
4 CLEAR 3750:DIM T$(30):PRINT:PRINT:INPUT "Bildschirm Zeilen,Spalten:";Z,S
6 GOSUB 58:WINDOW 4,14,9,18:PRINT "1=EINGEBEN2=ANZEIGEN3=EINLESEN4=AUSGEBEN";
8 IF FRE(X)>475 THEN PRINT "5=AENDERN 6=DRUCKEN ";
10 PRINT "0=ENDE":PRINT:INPUT "AUSWAHL:";A
12 IF A=0 THEN WINDOW 0,Z-1,0,S-1:CLS:WINDOW:CLS:END
14 WINDOW 2,Z-1,0,S-1:CLS:ON A GOTO 16,28,52,54,60,88
16 PRINT "KEIN KOMMA!":I=0:J=0:PRINT AT(1,3);"Zeile: Block: Frei:"
18 T$(J)="":K=0:PRINT AT(1,19);J+1
20 PRINT AT(1,9);I+1:S$="":INPUT "";S$:K=K+LEN(S$):T$(J)=T$(J)+S$+" "
22 PRINT AT(1,28);FRE(X$)-300:IF K>120 THEN IF J<40 AND S$<>"@@"THEN J=J+1:GOTO 18
24 IF S$="@@"OR J>=30 THEN CLS:GOTO 6
26 I=I+1:GOTO 20
28 I=0:J=0:N=0
30 IF J<=30 THEN S$=T$(J):K=0:ELSE INPUT "";A$:CLS:GOTO 6
32 IF LEN(S$)=0 THEN J=J+1:GOTO 30:ELSE L=INSTR("@",S$):M=INSTR(" ",S$)
34 IF L>0 AND M>L THEN M=L
36 IF N+M>S THEN GOSUB 46:IF A$="$"THEN CLS:GOTO 6
38 PRINT LEFT$(S$,M-1);:IF S>M+N THEN PRINT " ";
40 N=N+M:IF LEN(S$)>M THEN S$=MID$(S$,M+1):ELSE J=J+1:GOTO 30
42 IF S$="@@"THEN J=41:GOTO 30:ELSE IF M<>L AND N<S THEN 32
44 GOSUB 46:IF A$<>"$"THEN 32:ELSE CLS:GOTO 6
46 A$="":I=I+1:N=0:IF N<S THEN PRINT
48 IF I/(Z-3)>INT(I/(Z-3))THEN RETURN
50 A$=INKEY$:IF A$=""THEN 50:ELSE RETURN
52 GOSUB 56:CLOAD*""+S$;T$:CLS:GOTO 6
54 GOSUB 56:CSAVE*""+S$;T$:CLS:GOTO 6
56 INPUT "DATEINAME:";S$:RETURN
58 PRINT AT(0,0);" MINTEX/3 (C) bidat'87":PRINT AT(1,0);STRING$(S,"="):RETURN
60 INPUT "BLOCK:";J:IF J=0 THEN 80
62 J=J-1:PRINT AT(1,3);"Block: Frei:"
64 IF J<=30 THEN S$=T$(J):K=0:ELSE CLS:GOTO 6
66 PRINT AT(1,9);J+1:PRINT AT(1,18);255-LEN(T$(J))
68 IF LEN(S$)=0 THEN J=J+1:GOTO 64:ELSE M=INSTR(" ",S$)
72 S$=LEFT$(S$,M):A$=S$:PRINT A$;:INPUT "";A$:IF LEFT$(A$,1)="$"THEN J=41:GOTO 64
74 IF A$<>S$ THEN T$(J)=LEFT$(T$(J),K)+A$+MID$(T$(J),K+M)
76 K=K+LEN(A$):IF LEN(T$(J))>K THEN S$=MID$(T$(J),K+1):ELSE J=J+1:GOTO 64
78 IF S$<>"@@"THEN 66:ELSE CLS:GOTO 6
80 PRINT "TEXT ANFUEGEN":J=0
82 K=INSTR("@@",T$(J)):IF K=0 AND J<30 THEN J=J+1:GOTO 82
84 IF J>=30 OR FRE(X$)<300 THEN CLS:PRINT "SPEICHER VOLL!":GOTO 6
86 T$(J)=LEFT$(T$(J),K-1):GOTO 20
88 INPUT "Druckseite Zeilen,Spalten:";Y,X:I=0:J=0:N=0
90 IF J<=30 THEN S$=T$(J):K=0:ELSE PRINT#2 CHR$(12);:CLS:GOTO 6
92 IF LEN(S$)=0 THEN J=J+1:GOTO 90:ELSE L=INSTR("@",S$):M=INSTR(" ",S$)
94 IF L>0 AND M>L THEN M=L
96 IF N+M>X THEN GOSUB 106:IF A$="$"THEN CLS:GOTO 6
98 PRINT#2 LEFT$(S$,M-1);:IF X>M+N THEN PRINT#2 " ";
100 N=N+M:IF LEN(S$)>M THEN S$=MID$(S$,M+1):ELSE J=J+1:GOTO 90
102 IF S$="@@"THEN J=41:GOTO 90:ELSE IF M<>L AND N<X THEN 92
104 GOSUB 106:IF A$<>"$"THEN 92:ELSE CLS:GOTO 6
106 A$="":I=I+1:N=0:IF N<X THEN PRINT#2 ""
108 IF I/Y>INT(I/Y)THEN RETURN:ELSE PRINT#2 CHR$(12);:INPUT "";A$:RETURN
110 PRINT "ZU WENIG SPEICHER! NEU STARTEN!":DELETE 60,110