-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathJOURN10.bc
237 lines (237 loc) · 9.78 KB
/
JOURN10.bc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
1000 A=500:GOTO20:REM BASICODE-3 JOURNAL 10
1010 HT=HO:VT=VE:S$="":FORI=1 TOHT:S$=S$+" ":NEXTI
1020 HL=0:HR=HT:VL=2:VR=VT-2:R$="":READT$
1030 GOSUB1340:HO=(HT-LEN(SR$)-6)/2:VE=0:GOSUB110
1040 GOSUB150:PRINT:PRINT:PRINT
1050 PRINT"Ausdruck ueber"
1060 PRINT:PRINT" - 1 den Bildschirm,"
1070 PRINT" - 2 den Drucker."
1080 PRINT:PRINT"Welche Nummer ?";:GOSUB210
1090 SC=IN-48:PRINTSC:IFSC<>2 THENSC=1:GOTO1180
1100 PRINT:PRINT"Wieviel Leerzeichen "
1110 PRINT"am Zeilenanfang ";:INPUTHL
1120 PRINT:PRINT"Wieviel Text-Zeichen "
1130 PRINT"auf jeder Zeile ";:INPUTI:HR=HL+I-1
1140 PRINT:PRINT"Wieviel Leer-Zeilen "
1150 PRINT"am Seitenende ";:INPUTVL
1160 PRINT:PRINT"Wieviel Text-Zeilen "
1170 PRINT"auf jeder Seite ";:INPUTVR:VR=VR+VL-3
1180 MM$="":IFHL>0 THENMM$=LEFT$(S$,HL)
1190 GOSUB1310:M$=MM$:AL=VL:IFSC=2 THEN GOSUB1290
1200 IFLEN(R$)>HR-HL THEN GOSUB1730
1210 GOSUB1370:IFR$<>"" THENR$=R$+" "
1220 R$=R$+D$:GOTO1200
1230 IFSC=2 THENSR$=M$+SR$:GOSUB350:GOSUB360:GOTO1250
1240 GOSUB120:PRINTM$;SR$;:VE=VE+1:HO=0:GOSUB110:HL=0
1250 M$=MM$:AL=AL+1:IFAL<=VR THENRETURN
1260 IFSC=1 THEN1310
1270 IFVL>0 THENFORI=1 TOVL:GOSUB360:NEXTI:GOSUB210
1280 AL=VL
1290 SR$=LEFT$(S$,(HR-HL-LEN(T$))/2)+T$:GOSUB1230
1300 SR$="":GOSUB1230:AL=VL:RETURN
1310 HO=0:VE=VT:GOSUB110
1320 SR$="WEITER: druecke <RETURN/ENTER>":GOSUB150
1330 GOSUB210:IFIN<>13 THEN1330
1340 GOSUB100:AL=VL:SR$=T$
1350 PRINTLEFT$(S$,(HT-LEN(SR$))/2-3);:GOSUB150
1360 PRINT:PRINT:RETURN
1370 READD$
1380 IFD$="" THEN1370
1390 IFLEFT$(D$,1)="." THEN1440
1400 IFLEFT$(D$,1)<>"!" THENRETURN
1410 IFD$="!" THEND$="":GOTO1430
1420 D$=RIGHT$(D$,LEN(D$)-1)
1430 GOSUB1670:GOTO1380
1440 IFD$<>".E" THEN1490
1450 J=1:GOSUB1670:T$="E N D E"
1460 SR$="":GOSUB1230:GOSUB1230:SR$=T$:GOSUB1230:T$=""
1470 SR$="":GOSUB1230:IFAL<>VL THEN1470
1480 GOTO950
1490 DD$=MID$(D$,2,1):D$=RIGHT$(D$,LEN(D$)-2)
1500 IFDD$<>"R" THEN1550
1510 IFSC=2 THENRETURN
1520 IFLEN(R$)+6+LEN(D$)>=HR-HL THENSR$=R$:GOSUB1230:R$=""
1530 PRINTM$;R$;:SR$=D$:GOSUB150:M$=""
1540 HL=HL+LEN(R$)+LEN(D$)+6:R$="":GOTO1370
1550 IFDD$<>"M" THEN1580
1560 I=VAL(D$):MM$="":IFI+HL=0 THEN1370
1570 MM$=LEFT$(S$,I+HL):GOTO1370
1580 IFDD$="P" THENJ=VAL(D$):GOSUB1670:GOSUB1690:GOTO1370
1590 IFDD$="T" THENT$=D$:J=10:GOSUB1670:GOSUB1690:GOTO1510
1600 IFDD$="Q" THENR$=R$+CHR$(34)+D$:GOTO1370
1610 IFDD$<>"F" THEN1640
1620 J=VAL(D$):GOSUB1670
1630 J=J-1:IFJ>-1 THENSR$="":GOSUB1230:GOTO1630
1640 IFDD$<>"C" THEN1660
1650 SR$=LEFT$(S$,(HR-HL-LEN(D$))/2)+D$:GOSUB1230
1660 GOTO1370
1670 GOSUB1730:SR$=R$:GOSUB1230:R$="":J=J-1
1680 RETURN
1690 IF(SC=1)OR(AL+J>VR)THEN1710
1700 SR$="":GOSUB1230:GOSUB1230:RETURN
1710 IFAL<>VL THENSR$="":GOSUB1230:GOTO1710
1720 RETURN
1730 K=HR-HL+1-LEN(M$)
1740 IFLEN(R$)<=K THENRETURN
1750 IFMID$(R$,K,1)=" " THEN1780
1760 K=K-1:IFK>0 THEN1750
1770 SR$="":GOTO1790
1780 SR$=LEFT$(R$,K-1):R$=RIGHT$(R$,LEN(R$)-K)
1790 GOSUB1230:GOTO1730
25000 DATA"JOURNAL-Dokumentation."
25010 DATA"Einfuehrung"
25020 DATA"!!Die Dokumentation ist eine Beschreibung des"
25030 DATA"vorliegenden Textprogrammes"
25040 DATA"(Zeilennummer 1000 - 1790)."
25050 DATA"Das Programm ermoeglicht eine vorteilhafte"
25060 DATA"Gestaltung von Texten auf dem Bildschirm und"
25070 DATA"beim Druck."
25080 DATA"!Anwendung fand das Programm bisher bei den"
25090 DATA"COMPUTER-BULLETINs von Radio Hilversum"
25100 DATA"und den BASICODE-3 Journalen im"
25110 DATA"Computermagazin REM von Radio DDR II und"
25120 DATA"derzeit beim Deutschlandsender Kultur."
25130 DATA"!Die Urheberrechte fuer das Textprogramm"
25140 DATA"liegen bei der STICHTING BASICODE, Eindhoven."
25150 DATA".P0"
25160 DATA"Um Sendezeit zu sparen und trotzdem interessante"
25170 DATA"Beitraege zu bringen, wird in den hollaendischen"
25180 DATA"BASICODE-Sendungen oft diese Journal-Form"
25190 DATA"genutzt - warum also nicht auch bei uns?"
25200 DATA"Wir wuerden uns freuen, wenn Sie fuer REM"
25210 DATA"solche Beitraege schreiben - Ihrer"
25220 DATA"Ideenvielfalt sind dabei keine Grenzen gesetzt."
25230 DATA"Buch- Hard- Software-Tips, Clubarbeit,"
25240 DATA"Technikberichte (wie z.B. das 'ASTRA-Journal'"
25250 DATA"von Michael Friedrich aus Zoerbig) uvm. sind"
25260 DATA"stets willkommen. Schicken Sie uns Ihre"
25270 DATA"Journale auf Kassette zu (Kassette garantiert"
25280 DATA"zurueck) - kleine Preise als Dankeschoen"
25290 DATA"warten auf Sie!","!Wie man ein solches"
25300 DATA"Journal realisiert, erlaeutert der folgende"
25310 DATA"Text.","!!Danke sagt ** REM **"
25320 DATA".P0"
25330 DATA"Text"
25340 DATA"!!Der Text wird in den Konstantenlisten"
25350 DATA"von DATA-Anweisungen, ab Zeile"
25360 DATA"25000, abgelegt. Die Listenelemente sind in"
25370 DATA"Anfuehrungszeichen zu setzen und gegebenfalls"
25380 DATA"durch Kommata zu trennen. Worttrenungen"
25390 DATA"ueber Listenelemente hinweg sind nicht erlaubt."
25400 DATA"!!Die Kommandos des Textprogrammes werden mit"
25410 DATA"in die Listenelemente aufgenommen"
25420 DATA"und stehen zu Beginn derselben oder bilden"
25430 DATA"selber eine Konstantenliste."
25440 DATA".P0"
25450 DATA"Titelzeile"
25460 DATA"!!Die erste DATA-Anweisung (Zeile 25000)"
25470 DATA"enthaelt die Titelzeile."
25480 DATA"Sie wird durch das Programm gesondert behandelt."
25490 DATA"!Bei der Bildschirmanzeige"
25500 DATA"erfolgt ein auffaelliges Anzeigen mittig"
25510 DATA"am oberen Bildschirmrand."
25520 DATA"!Beim Druck erscheint die Titelzeile auf"
25530 DATA"jeder neuen Seite mittig am oberen Blattrand."
25540 DATA"!In dieser Beschreibung heisst die Titelzeile:"
25550 DATA"!.CJOURNAL-Dokumentation."
25560 DATA".P14"
25570 DATA"Kommandos"
25580 DATA"!!Die Kommandos dienen der Gestaltung der Texte."
25590 DATA"Sie stehen am Anfang der DATA-Listenelemente"
25600 DATA"oder stellen selber eines dar."
25610 DATA".P0","!!.R ! "
25620 DATA"!Ein Ausrufezeichen (!) bewirkt die Ausgabe des"
25630 DATA"vorhergehenden Textrestes,"
25640 DATA"der bei der Zeilenformatierung entstand,"
25650 DATA"und einen Zeilenvorschub, wobei die"
25660 DATA"Zeilenanfangsposition eingenommen wird."
25670 DATA"!Ein zweites Ausrufezeichen (!!) erzeugt"
25680 DATA"zusaetzlich noch"
25690 DATA"eine Leerzeile, jedes weitere ebenfalls."
25700 DATA"!!.R .R "
25710 DATA"!Das .R-Kommando bewirkt ein auffaelliges"
25720 DATA"Anzeigen des Textes (hier",".R.R"
25730 DATA") auf dem Bildschirm.","!Auf den Druck hat es"
25740 DATA"keinen Einfluss."
25750 DATA".P12"
25760 DATA"!!.R .C "
25770 DATA"!Das .C-Kommando setzt dem Kommando folgenden"
25780 DATA"Text in","!.CZeilenmitte."
25790 DATA"!!.R .Fn "
25800 DATA"!Das .F-Kommando erzeugt n-1 Leerzeilen, wobei"
25810 DATA"n eine natuerliche Zahl ist. Das"
25820 DATA"Kommando ist ein eigenstaendiges Listenelement."
25830 DATA"!Zum Beispiel:.F3",".F3"
25840 DATA"entspricht 2 Leerzeilen."
25850 DATA".P18"
25860 DATA"!!.R .Q "
25870 DATA"!Das .Q-Kommando setzt vor den folgenden Text"
25880 DATA"ein ",".QAnfuehrungszeichen",".Q."
25890 DATA"Es ist zu beachten, dass nach dem .Q-Kommando"
25900 DATA"wenigstens noch ein Zeichen folgen muss."
25910 DATA"!!.R .Pn "
25920 DATA"!Das .P-Kommando dient zur Kennzeichnung von"
25930 DATA"Textabsaetzen.","!Im Bildschirmmodus"
25940 DATA"wird auf eine neue Bildseite gewechselt."
25950 DATA"!Beim Druck werden 2 Leerzeilen erzeugt."
25960 DATA"!Steht hinter dem Kommando die Anzahl n der"
25970 DATA"Absatzzeilen, so wird beim"
25980 DATA"Druck geprueft, ob der Absatz noch geschlossen"
25990 DATA"auf dem Blatt untergebracht werden kann. Ist"
26000 DATA"dieses nicht der Fall, wird ein Blattwechsel"
26010 DATA"erzeugt.","!Das Kommando ist ein eigenstaendiges"
26020 DATA"DATA-Listenelement."
26030 DATA".P0","!!.R .T "
26040 DATA"!Das .T-Kommando erzeugt eine neue Titelzeile."
26050 DATA"!Ansonsten entspricht es im wesentlichen"
26060 DATA"dem .P-Kommando, wobei n auf 10 festgelegt ist."
26070 DATA"!Im Bildschirmmodus erfolgt ein auffaelliges"
26080 DATA"Anzeigen des Textes, welcher dem Kommando folgt."
26090 DATA"!!.R .Mn "
26100 DATA"!Das .Mn-Kommando erzeugt am Zeilenanfang"
26110 DATA"n Leerzeichen. Beispiel:",".M5","links stehen"
26120 DATA"5 Leerzeichen.",".M0","Die Option wird mit dem"
26130 DATA"Kommando .M0 aufgehoben."
26140 DATA"!!.R .E "
26150 DATA"!Das .E-Kommando beendet die Arbeit mit dem"
26160 DATA"Textprogramm."
26170 DATA"!Es erfolgt die Ausschrift E N D E . "
26180 DATA"Der BASICODE-Mode wird beendet."
26190 DATA".P22"
26200 DATA"!Hinweise zum Drucken"
26210 DATA"!!Bei Einzelblattverarbeitung sollte Zeile"
26220 DATA"1270 mit GOSUB 210 abgeschlossen"
26230 DATA"sein. Es ermoeglicht den Blattwechsel."
26240 DATA"!!Folgende Eingaben vor dem Druck haben sich"
26250 DATA"bewaehrt, fuer:"
26260 DATA"!!Schriftart ELITE Zeilenabstand 1/8",".Q "
26270 DATA"!Leerzeichen am Zeilenanfang 12"
26280 DATA"!Textzeichen pro Zeile 85"
26290 DATA"!Leerzeilen am Blattende 6"
26300 DATA"!Textzeilen pro Seite 85"
26310 DATA"!!Schriftart PICA Zeilenabstand 1/6",".Q "
26320 DATA"!Leerzeichen am Zeilenanfang 10"
26330 DATA"!Textzeichen pro Zeile 75"
26340 DATA"!Leerzeilen am Blattende 4"
26350 DATA"!Textzeilen pro Seite 62"
26360 DATA".P10","Das war das","!!"
26370 DATA".C**************************"
26380 DATA".C* *"
26390 DATA".C* BASICODE-3 Journal *"
26400 DATA".C* Nummer 10 *"
26410 DATA".C* 13. Juni 1990 *"
26420 DATA".C* erweitert / 28.11.90 *"
26430 DATA".C* *"
26440 DATA".C**************************",".E"
30000 REM
30010 REM Beschreibung - Textprogramm
30020 REM
32000 REM ---------------
32010 REM H. Eckert
32020 REM P.-Warschow-Str. 2
32030 REM 2200 Greiswald
32040 REM 5/1990 - KC85/3
32050 REM ---------------
32060 REM
32070 REM Erstausstrahlung: Radio DDRII
32080 REM-spezial 900608