summaryrefslogtreecommitdiff
path: root/system/shard-z80-ruc-64180/1.5/doc/SHARD.PRT
blob: 5fed997114589c41e0380b8c19e7d1e0a228b534 (plain)
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
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
#type ("12")##limit (16.0)##block##pageblock# 
#head# 
#center#Dokumentation zum EUMEL-SHard 
 
 
#end# 
#bottom# 
 
 
#center#- % - 
#end# 
************************************************************************ 
*                                                                      * 
*             D o k u m e n t a t i o n    z u m   S H a r d  (8)      * 
*                                                                      * 
*             Stand der Dokumentation:  26.06.87                       * 
*             Stand der Implementation: 26.06.87, Version 1.5          * 
*                                                                      * 
*                                                  Michael Staubermann * 
*                                                  Mornenstrae 29    * 
*                                                  44 Mnster-Hiltrup  * 
************************************************************************ 
 
 
 
1.   Allgemeines 
1.1    Neuheiten 
1.2    Logische und physische Kanle 
 
2.   Block I/O 
2.1    Harddisk (Kanal 0) 
2.2    SCSI-Floppy (Kanal 31) 
2.3    Harddisk-Volume (Kanal 28) 
2.4    160k/640k-Floppys (Kanal 29, 30) 
2.5    Graphikmemory (Kanal 1) 
 
3.   Stream I/O 
3.1    Konsole (Kanal 1) 
3.2    6551-Seriell (Kanal 5) 
3.3    SCCs (Kanal 2, 3) 
3.4    CIO-Drucker (Kanal 4) 
3.5    Motherboard-Drucker (Kanal 6) 
 
4.   Graphik 
4.1    CTRL 
4.2    MOVE 
4.3    DRAW 
4.4    TEST 
4.5    CLR 
4.6    FILL 
4.7    TRANS 
 
5.   Hardware 
5.1    Zugriff auf die Hardware-Uhr 
5.2    Zugriff auf die Analog-Ports 
5.3    Zugriff auf die I/O-Ports 
5.4    ID-Felder 
 
6.   Installation 
6.1    Vortest/Speichertest 
6.2    Konsole 
6.3    SCSI-Floppy 
6.4    Harddisk Volume 
6.5    Logische Kanle zuordnen 
6.6    Installation auf Harddisk 
6.7    Installation auf Floppy 
 
#page# 
#ub#1  Allgemeines#ue# 
 
#ub#1.1  Neuheiten#ue# 
 
Neu in Version 1.2: 40% hherer CPU-Durchsatz. 
 
Neu in Version 1.4: Texthardcopy mit SHIFT CTRL F12. 
 
Neu in Version 1.5: Beide Printer-Spooler lschbar mit control (-10,...). 
Korrektur in   1.5: Kanal 4 - Printer darf auch whrend des Betriebs aus-
                    und eingeschaltet werden (luft automatisch wieder an). 
 
 
#ub#1.2  Logische und physische Kanle#ue# 
 
Die Unterscheidung zwischen logischen und physischen Kanlen bringt Vortei-
le: 
 
- Der Systemstart mu nicht mehr an der Konsole erfolgen (jetzt z.B. an
  einem externen Terminal). 
- Systemfehler/Hardwarefehler und Info werden damit auch an einem anderen
  physischen Kanal ausgegeben. 
- Das Hintergrundmedium mu nicht mehr unbedingt die Harddisk sein. Eine
  SCSI-Floppy (720k) wre denkbar, oder ein anderes Harddisk-Volume. 
- Das Archivmedium mu nicht mehr unbedingt die SCSI-Floppy sein. Ein Hard-
  diskvolume oder eine 640k-Floppy wren denkbar. 
- Fr einen anderen SHard geschriebene Software (z.B. alter Druckertrei-
  ber/Graphiktreiber) mu nicht gendert werden. 
 
#page#
#ub#2.  Block I/O#ue# 
 
#ub#2.1  Harddisk (Kanal 0)#ue# 
 
Keine Recalibrates (wg. Timeout/DMA-Fehler) mehr! 
Das beste Sektor-Interleave ist 5. 
 
 
#ub#2.2  SCSI-Floppy (Kanal 31)#ue# 
 
- Falls keine Floppy im Schacht liegt, werden keine Retries mehr gemacht.
  Bei Write-Protect auch nicht. 
- Harddisk und Floppy arbeiten jetzt auch bei intensiver Benutzung gut
  nebeneinander. 
- Mit 'size (schluessel)' kann vom EUMEL aus das Format eingestellt werden.
  Interpretiert wird 0 und 2 als 720k-Format und 1 als 360k-Format, sowie
  der analytische Schlssel (lt. Portierungshandbuch). 
- 'format (schluessel)' formatiert eine Floppy im 720k-Format. Der Control-
  ler wird allerdings wie bei 'size (schluessel)' vorher initialisiert, da
  EUMEL das nicht macht. 
- Falls gewnscht kann auch SCSI-Floppy #1 ber Kanal 31 angesprochen wer-
  den. Die entsprechende Frage wird im Installationsprogramm gestellt. 
 
 
#ub#2.3  Harddisk-Volume (Kanal 28)#ue# 
 
Mit diesem Kanal ist es mglich, ein anderes Harddisk-Volume, dessen Anfang
und Gre auf der Platte mit dem Installationsprogramm ausgewhlt wurde,
anzusprechen. Ein CP/M-Volume kann z.B. auch durch EUMEL genutzt werden
oder das Harddisk-Volume wird als Archiv-Kanal genutzt. 
 
 
#ub#2.4  160k/640k Floppys (Kanal 29, 30)#ue# 
 
- Kanal 29 spricht Disk #1 in Slot 6 an, 
- Kanal 30 spricht Disk #0 in Slot 6 an. 
- Da sich beide Disks einen Controller und Datenbereich (4k-Cache) teilen,
  kann Block I/O nicht auf beiden Kanen parallel ablaufen. Blockweise Ab-
  wechslung ist allerdings mglich (Wird durch Semaphor geregelt). 
- Formatieren ist auf diesen Kanlen nicht mglich. 
- Das Format (160k/640k) wird mit 'size (schluessel)' im EUMEL eingestellt.
  Auer dem analytischen Schlssel wird noch 0 und 2 fr 2 * 80 Tracks
  (640k) und 1 fr 1 * 40 Tracks (160k) interpretiert. 
- Ein (CP/M-) Interleave von 3 Sektoren ist eingestellt. 
- Daten werden jeweils Trackweise in einen Puffer gelesen und in 512-Byte
  Blcken an EUMEL bergeben. Bei 'blockout' wird der Block (512-Bytes)
  sofort auf die Floppy geschrieben. 
- Writeprotection wird erkannt. 
- Media-Mangel wird nicht erkannt, sondern als Lesefehler interpretiert bei
  dem Retries versucht werden. (SHard fhrt von sich aus 1 Recalibrate aus,
  den Rest mu EUMEL machen). 
 
 
#ub#2.5  Graphikmemory (Kanal 1)#ue# 
 
- Dieser flchtige Speicher hat eine Gre von 32KB (64 Blcke) 
- 4 Graphikseiten zu jeweils 8KB sind linear angeordnet. 
- Seiten 0 und 1 knnen als Grahikbitmap angezeigt werden 
- Seiten 2 und 3 knnen dienen als Hilfsspeicherseiten 
 
#page#
#ub#3. Stream I/O#ue# 
 
#ub#3.1  Konsole (Kanal 1)#ue# 
 
- Die Blinkfrequenz des Cursors kann nicht mehr mit 'control' eingestellt
  werden, sondern vor dem Systemstart mit dem Installationsprogramm. 
- Zustzlich kann die Tonhhe des Steuercodes ""7"" bestimmt werden (Im
  Installationsprogramm). 
- Der Zeichensatz wird nicht mehr mit 'control' eingestellt. Da jetzt Steu-
  ercodes benutzt werden, kann der Zeichensatz in der Typtabelle festgelegt
  werden. 
- Zeichencodes 128..255 werden ohne Umsetzung auf den Bildschirm geschrie-
  ben. 
- Folgenden Steuercodes sind definiert: 
   0 - Keine Aktion 
   1 - Cursor Home 
   2 - Cursor right 
   3 - Cursor up 
   4 - Clear to end of Page 
   5 - Clear to end of Line 
   6 - Cursor Positionierung (Row, Column) (ohne Offset!) 
   7 - Bell 
   8 - Cursor left 
   9 - Clear Screen 
  10 - Cursor down 
  11 - Insert Line 
  12 - Delete Line 
  13 - Carriage Return 
  14 - End Mark 
  15 - Begin Mark 
  16 - Deutscher Zeichensatz (German ASCII) 
  17 - ASCII Zeichensatz 
  18 - APL Zeichensatz 
  19 - Universal Zeichensatz (German ASCII + APL) 
  20 - Mode einschalten: Inverse Zeichen blinken nicht 
  21 - Mode einschalten: Inverse Zeichen blinken 
 
- Es werden keine Eingabeumcodierungen gemacht, dies soll in der Typtabelle
  geschehen. 
- Falls EUMEL keine Eingabezeichen mehr puffern kann, werden diese im Ta-
  staturpuffer gespeichert. Damit ist es mglich bis zu 270 Tastendrcke im
  voraus zu tippen. Werden noch mehr Tasten gedrckt, ertnt ein Signal, da
  weitere Tastendrcke verlorengehen. EUMEL wird beim nchsten Inputinter-
  rupt ein Overrun-Error gemeldet. 
 
- Einige Funktionstasten haben eine besondere Bedeutung: 
  F2 = SV-Call: Diese Taste wird auch dann weitergeleitet, wenn EUMEL keine
                weiteren Zeichen puffern kann, damit Tasks, die nicht auf
                Eingabe warten, abgebrochen werden knnen. 
  SHIFT CTRL F12 = Texthardcopy: Durch Drcken dieser Tasten wird der In-
                halt des Textbildschirms auf einem Drucker an der paralle-
                len Basisschnittstelle ausgedruckt. Achtung: Dies funktio-
                niert nur, wenn der Spooler leer ist. Falls ein Druckauf-
                trag luft, sollte keine Hardcopy gemacht werden (Falls der
                Spooler nmlich kurzfristig leer ist, wird die Hardcopy
                gedruckt den Druckauftrag ruinieren.) 
  SHIFT CTRL F13 = Weiter: Durch Drcken dieser Tasten wird der Tastatur-
                puffer ohne Rcksicht darauf, ob EUMEL noch Zeichen puffern
                kann, zeichenweise entleert. (Wird wohl kaum benutzt werden
                men). 
  SHIFT CTRL F14 = Shutup: Durch Drcken dieser Tasten wird das System
                kontrolliert heruntergefahren. 
  SHIFT CTRL F15 = Reset:  Falls verdrahtet lst die Software einen Hard-
                warereset aus. 
 
 
#ub#3.2  6551-Seriell (Kanal 5)#ue# 
 
Dieser Kanal wurde erweitert: 
- Auer Baudrate knnen jetzt auch Stopbits, Datenbits, Parity und Flu-
  kontrolle eingestellt werden (CTS, DSR/DTR, XON/XOFF). 
- Ein Empfangspuffer von 2300 Zeichen wurde eingebaut und der Ausgabepuffer
  auf 1k erweitert. 
- Ein- und Ausgabe luft jetzt Interruptgetrieben, kann also auch whrend
  einer Floppyoperation stattfinden. 
- bertragungsfehler (Parity, Framing, Overrun) werden beim Inputinterrupt
  an EUMEL gemeldet. Die Fehler werden in dem Moment, in dem sie bemerkt
  werden gemeldet, d.h. i.d.R. nicht passend zum gleichzeitig bermittelten
  Zeichen. 
- Ein Break-Kommando wird interpretiert und ggf. an EUMEL gemeldet. Folgt
  auf das Break-Kommando ('00' + Framing Error) ein 'Kommandozeichen', dann
  wird dieses Remote-Kommando ausgefhrt, anderenfalls wird das auf 'Break'
  folgende Zeichen in den Empfangspuffer geschrieben und 'Break' an EUMEL
  gemeldet. 
- Folgende Break-Komandos werden interpretiert: 
  <BREAK> <CTRL B> : SV-Call ohne Rcksicht auf Verluste an EUMEL leiten. 
  <BREAK> W        : Wie SHIFT CTRL F13 bei Keyboard. 
  <BREAK> S        : Shutup, System kontrolliert herunterfahren. 
  <BREAK> R        : Software lst, falls verdrahtet, einen Hardarereset
                     aus. 
 
 
#ub#3.3  SCCs (Kanal 2, 3)#ue# 
 
- Auer der Baudrate kann man jetzt auch Stopbits, Datenbits, Parity und
  Flukontrolle (RTS+DTR /CTS) einstellen. XON/XOFF wird nicht empfohlen. 
- bertragungsfehler (Overrun, Parity und Break) werden EUMEL gemeldet. 
- Beide Kanle besitzen einen Ausgabepuffer von jeweils 2KB. 
 
 
#ub#3.4  CIO-Drucker (Kanal 4)#ue# 
 
- Der Drucker wird mit Strobe/-ACK - Protokoll angeschloen. 
- Dieser Kanal besitzt einen Ausgabepuffer von 4KB (Interruptgetrieben). 
- Der Druckerpuffer kann mit 'control (-10, 0, 0, r)' an Kanal 4 gelscht
  werden. 
 
 
#ub#3.5  Motherboard-Drucker (Kanal 6)#ue# 
 
- Der Drucker wird mit Strobe/-ACK - Protokoll angeschloen. 
- Dieser Kanal besitzt einen 4KB Ausgabepuffer (Polling). 
- Der Druckerpuffer kann mit 'control (-10, 0, 0, r)' an Kanal 6 gelscht
  werden. 
 
#page#
#ub#4.  Graphik#ue# 
 
#ub#4.1  CTRL#ue# 
 
control (-8, flags, linienmuster, r) 
Setzt verschiedene Graphikmodi. 
 
Die Bits im Parameter 'flags' sind folgendermaen zugeordnet: 
 
Bit 0 : 
     0 = Textmodus einschalten, Graphikmodus ausschalten 
     1 = Graphikmodus einschalten, Textmodus ausschalten 
 
Bit 1 : 
     0 = Seite 0 als sichtbare Seite whlen 
     1 = Seite 1 als sichtbare Seite whlen 
 
Bit 2 : 
     0 = Seite 0 als bearbeitete Seite whlen 
     1 = Seite 1 als bearbeitete Seite whlen 
 
Bit 3, 4 : Verknpfung Patternbit: 0           1 
    0           OR              setzen     unverndert 
    1         NAND             lschen     unverndert 
    2          XOR         invertieren     unverndert 
    3         COPY             lschen     setzen 
 
Bit 5 : 
     0 = Der gesamte Bildschirm zeigt die Graphikseite ('full screen') 
     1 = In den letzten 32 Graphikzeilen erscheint die Textseite ('mixed') 
 
Bit 6 : 
     0 = Das im zweiten Parameter bergebene Wort wird als 16-Bit 
         Linienmuster eingestellt. Modus siehe Bit 3/4. 
     1 = Das alte (bzw. voreingestellte) Linienmuster wird benutzt 
 
Bit 7 : 
     0 = Als Punkthelligkeit wird 'dunkel' (bzw. Violett) eingestellt 
     1 = Als Punkthelligkeit word 'hell' (bzw. Gelb) eingestellt 
 
Bit 8..11 : 
     0 = Default-Strichdicke (1) 
     1..15 = Strichdicke (Es werden 2*s-1 Linien parallel gezeichnet.) 
 
Der zweite Parameter enthlt das 16-Bit Linienmuster. Dieses wird beim
Zeichnen einer Linie zyklisch Bitweise abgetastet. Je nach Status des Bits
im Linienmuster wird eine Punktaktion ausgefhrt, deren Wirkung in 'flags'
mit den Bits 3 und 4 spezifiziert wird. 
 
 
#ub#4.2  MOVE#ue# 
 
control (-5, x pos, y pos, r) 
Setzt den (unsichtbaren) Graphikcursor auf xpos/ypos. 
 
Der nchste 'draw' zeichnet eine Linie beginnend bei xpos/ypos. 
 
 
#ub#4.3  DRAW#ue# 
 
control (-6, x pos, y pos, r) 
Zeichnet eine Linie zur angegebenen Position xpos/ypos. 
 
Die eingestellten Parameter Helligkeit, Linientyp, Bitverknpfung und Dicke
werden beachtet. Der nchste 'draw' zeichnet eine Linie beginnend bei
xpos/ypos. 
 
 
#ub#4.4  TEST#ue# 
 
control (-7, x pos, y pos, result) 
Testet den Status eines bestimmten Pixels. 
 
Die Pixelposition wird mit xpos/ypos beschrieben. 
Als 'result' wird zurckgeliefert: 
    255, falls xpos/ypos auerhalb des sichtbaren Fensters liegt. 
    Bit 0 = 1: Pixel sichtbar 
    Bit 0 = 0: Pixel unsichtbar 
    Bit 7 = 1: Pixelfarbe ist hell (gelb) 
    Bit 7 = 0: Pixelfarbe ist dunkel (violett) 
 
 
#ub#4.5  CLR#ue# 
 
control (-3, seite, muster, r) 
Fllt die angegebene Seite mit dem angegebenen Muster. 
 
Bit 7 des Musters bestimmt die Farbe (0 = dunkel, 1 = hell). Das Muster
wird zyklisch Spalten- und Zeilenweise wiederholt. muster=128 lscht z.B.
die Graphikseite. 
 
 
#ub#4.6  FILL#ue# 
 
control (-4, muster nummer, 0, return) 
Fllt eine beliebig durchgehend begrenzte Flche mit dem angegebenen Mu-
ster. 
 
Das Muster ist eine 8 x 8 Matrix, die sich auf allen (pos MOD 8)-Pixel-
adressen wiederholt. Im NAND-Modus wird mit dem inversen Muster gefllt.
Die Flche mu dann aber mit unsichtbaren Pixeln begrenzt werden. 
 
Folgende Muster sind mglich: 
    0 = 'solid' (alles gefllt) 
    1 = 'lrs2'  (jeder zweite Punkt, Zeilenweise versetzt) 
    2 = 'row4'  (jede 4. Zeile wird gefllt) 
    3 = 'row2'  (jede 2. Zeile wird gefllt) 
    4 = 'col4'  (jede 4. Spalte wird gefllt) 
    5 = 'col2'  (jede 2. Spalte wird gefllt) 
    6 = 'grid4' (jede 4. Spalte/Zeile wird gefllt) 
    7 = 'grid2' (jede 2. Spalte/Zeile wird gefllt) 
    8 = 'ls4'   (Schraffur links unten --> rechts oben, jede 4.) 
    9 = 'rs4'   (Schraffur rechts unten --> links oben, jede 4.) 
   10 = 'lrs4'  (Schrges Gitter wie 8 und 9 zusammen) 
   11 = 'point2'(In jeder 2. Zeile jeder 2. Punkt) 
   12 = 'wall4' (Mauer, ein Ziegelstein 4 Pixel hoch) 
   13 = 'basket'(Korb/Netz) 
   14 = 'wave4' (Wellenlinie 4 Pixel hoch) 
   15 = 'wave8' (Wellenlinie 8 Pixel hoch) 
 
Falls die zu fllende Flche zu komplex wird, kann es vorkommen, da der
interne Stack berluft. In diesem Fall wird nicht die gesamte Flche ge-
fllt. 
 
 
#ub#4.7  TRANS#ue# 
 
control (-9, from page, to page, r) 
Kopiert den Inhalt der Graphikseite 'from page' in die Seite 'to page'. 
 
Folgende Seitennummern sind mglich: 
    0 : Seite 0 kann mit 'visible page (0)' angezeigt werden 
    1 : Seite 1 kann mit 'visible page (1)' angezeigt werden 
    2 : Seite 2 kann nicht sichtbar werden (Hilfsspeicher-Seite) 
    3 : hnlich Seite 2, wird aber bei 'FILL' noch als Arbeitsseite benutzt
    (wird dann berschrieben!) 
 
#page#
#ub#5.  Hardware#ue# 
 
#ub#5.1  Zugriff auf die Hardware-Uhr#ue# 
 
Mit 'TEXT PROC calendar (INT CONST feld)' kann in Shnen von SYSUR die
Hardware-Uhr gelesen werden. Fr 'feld' sind folgende Werte zugeordnet: 
 
 0  Sekunden (0..59) 
 1  Minuten (0..59) 
 2  Stunden (0..23) 
 3  Tag des Monats (1..31) 
 4  Monat (1..12) 
 5  Jahr (87..99) 
 
Ist die Uhr richtig gestellt (das ist aus CP/M mit 'date set' mglich),
liefert jeder Aufruf von 'calendar' eine Zahl, anderenfalls wird immer
'niltext' geliefert und EUMEL fragt nach dem Systemstart nach dem Datum.
Dabei wird die Hardware-Uhr jedoch #ub#nicht#ue# gestellt. 
In diesem Fall ist der Akku wahrscheinlich entladen (Abhilfe: Rechner eini-
ge Stunden laufen lassen) oder die Uhr ist noch nicht gestellt worden (Ab-
hilfe: 'date set' im CP/M). 
 
In Tasks, die keine Shne von SYSUR sind, kann die Hardware-Uhr mit 
 
 TEXT PROC calendar (INT CONST feld) : 
  INT VAR r ; 
  control (10, feld, 0, r) ; 
  text (r DIV 256 * 10 + (r AND 15)) 
 ENDPROC calendar ; 
 
abgefragt werden. 
 
 
#ub#5.2  Zugriff auf die Analog-Ports#ue# 
 
Die 4 Analog-Ports auf dem Motherboard knnen mit 
 
  control (-2, port, 0, r) 
 
abgefragt werden. 'port' kann 1..4 sein, in 'r' werden Werte von 1..255
zurckgemeldet. Dieser Wert ist proportional dem Widerstandswert zwischen
+5V und Analogeingang. 
 
Fr Hardwarefreaks : 
 
    Port  Connectorpin 
    ------------------ 
      1         6 
      2        10 
      3         7 
      4        11 
     +5V        1 
 
Da der Mewertaufnehmer ein 'LS123 mit C#d#t#e#=68nF, R#d#t#e#=0.27+R#d#x#e# kOhm ist, gilt:
t#d#w#e#=0.45 * R#d#t#e# * C#d#t#e# = (30.6 * R#d#x#e# + 8.262) [us]. t#d#w#e# wird gemessen. (t#d#w#e# = 11
Zyklen * r + 5 Zyklen bei 1.023 MHz) 
 ==> 30.6 * R#d#x#e# + 8.262 = (11 * r + 5) / 1.023 [us] 
<==> R#d#x#e# = ((11 * r - 5) / 1.023 -8.262) / 30.6 [kOhm] 
(Damit ist auch klar, warum der Wert 0 nicht geliefert wird.) 
 
R#d#x#e# [kOhm] = 0.351 * r + 0.43 
r = 2.846 * R#d#x#e# + 1.221 
 
 
#ub#5.3  Zugriff auf die I/O-Ports#ue# 
 
Das Schreiben #ub#und#ue# Lesen der I/O-Ports der CPU ist jetzt nur an privilegier-
ten Kanlen (25..32) mglich. 
 
  control (-1, port, -1, r) 
 
kann der angegebene Port 'port' (0..255) gelesen werden. Das Resultat (By-
te) steht dann in 'r'. Falls der aufrufende Kanal ungltig war, wird -1
geliefert. Mit 
 
  control (-1, port, wert, r) 
 
kann der angegebene Port 'port' (0..255) beschrieben werden. Der Bytewert
steht in 'wert', die Erfolgsmeldung in 'r' (0 = ok). 
 
 
#ub#5.4  ID-Felder#ue# 
 
Mit 'INT PROC id (INT CONST feld nr)' knnen Systemkonstanten abgefragt
werden. Fr 'feld nr' sind folgende Werte zugeordnet: 
 
0  Minimale Hintergrundversion (175) 
1  Urladertyp (1 = Z80) 
2  Urladerversion (101 = Version 1.1) 
3  Reserviert 
4  Lizenznummer des SHards 
5  Installationsnummer 
6  Reserviert 
7  Versionsnummer des SHards: 1000 * Interfaceversion + SHard Version (ent-
   hlt z.Zt. 8105, d.h. Interface 8, Version 1.5) 
 
#page#
#ub#6.  Installation#ue# 
 
#ub#6.1  Vortest/Speichertest#ue# 
 
Vortest und Speichertest sollten normalerweise durchgefhrt werden. (Beide
Fragen mit 'j' beantworten). Wird kein Vortest gewnscht, wird automatisch
auch kein Speichertest durchgefhrt und es besteht keine Mglichkeit, das
Hardwaretest-Menue aufzurufen. 
 
 
#ub#6.2  Konsole#ue# 
 
Die Blinkperiode des Cursor und die Tonhhe des Steuercodes ""7"" kann
verndert werden (Sekunden bzw. Hertz). Defaults sind 0.8s und 500Hz. 
 
 
#ub#6.3  SCSI-Floppy#ue# 
 
Falls nicht SCSI-Floppy #0 sondern, falls vorhanden, SCSI-Floppy #1 als
Kanal 31 angesprochen werden soll, wird diese Frage mit 'n' beantwortet. 
 
 
#ub#6.4  Harddisk Volume#ue# 
 
Als Kanal 28 kann ein Harddisk-Volume angesprochen werden. Alle verfgbaren
Volumes werden angeboten und ein ausgewhltes wird im SHard als Kanal 28
installiert. Achtung: Sollte dieses Volume gelscht, vergrert oder ver-
schoben werden (durch CP/M) dann wei SHard noch nichts davon. Deshalb
sollte der SHard nach einer solchen Aktion noch einmal installiert werden. 
Aus Sicherheitsgrnden wird empfohlen, ein spezielles Volume einzurichten,
ber das dann der Datenaustauch CP/M <--> EUMEL luft. 
 
 
#ub#6.5  Logische Kanle zuordnen#ue# 
 
Als logische Kanle stehen Kanal 0..31 zur Verfgung, als physiche Kanle
0..6 und 28..31. Den logischen Kanlen knnen fast beliebig physische Kan-
le zugeordnet werden. 
Ausnahmen: 
- Der log. Kanal 0 (Hintergrund) mu als Blockkanal definiert werden (d.h.
  die physischen Kanle 0, 28, 29, 30, 31 knnen zugeordnet werden.) 
- Der log. Kanal 1 (Systemkanal) mu als Stream-I/O-Kanal definiert werden
  (d.h. die physischen Kanle 1, 2, 3, 5 knnen zugeordnet werden.) 
- Der log. Kanal 31 (Archiv) sollte definiert werden, dann aber als Block-
  kanal (d.h. die physischen Kanle 0, 28, 29, 30, 31) knnen zugeorndet
  werden.) 
- Nicht jeder physische Kanal mu zugeordnet werden. 
- Jeder physische Kanal darf hchstens einmal zugeordnet werden. 
 
Hinweis: 
  EUMEL verwaltet Kanal 1..16 als (unprivilegierte) Stream-Kanle, 
                  Kanal 17..24 als unprivilegierte Block-Kanle, 
                  Kanal 25..31 als privillegierte Block-Kanle. 
 
 
#ub#6.6  Installation auf Harddisk#ue# 
 
Wie frher kann der SHard auf einem Harddisk-Volume installiert werden.
Dazu werden alle vorhandenen EUMEL-Volumes angeboten und das gewnschte
ausgesucht. Falls kein EUMEL-Volume (mehr) vorhanden ist, werden alle ande-
ren Volumes angeboten. Dadurch ist es mglich ein neues EUMEL-Volume einzu-
richten (mit 'dmgr' unter CP/M). Der SHard belegt 2 Tracks (16k) auf der
Harddisk. 
 
 
#ub#6.7  Installation auf Floppy#ue# 
 
Um ganz auf eine Harddisk verzichten zu knnen oder falls der Harddisk-
SHard zerstrt wurde, kann EUMEL jetzt auch ber eine Boot-Diskette hochge-
fahren werden. Eine Bootdiskette (160k oder 640k) enthlt auf den ersten 4
Tracks den SHard, kann deshalb nicht mehr als CP/M-Datendiskette verwendet
werden. 
Die Floppy kann mit dem Installationsprogramm bootfhig gemacht werden.