summaryrefslogtreecommitdiff
path: root/system/shard-z80-ruc-64180/1.5/src/INIMOD.MAC
blob: 6c2cdf174171236008bd9fdcca2952d4a5f3a4f8 (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
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
	TITLE	INIMOD - Hardwareinitialisierung fuer EUMEL 1.8 auf RUC 180
;
	INCLUDE	HD64180.LIB
;
	.LIST
	CSEG
;
;****************************************************************
;
;	INIMOD: Initialisierung fuer  EUMEL 1.8 -> RUC 64180 Karte
;
;	Version 1.2 - 05.01.87 
;		1.2 mit logischen und physischen Kanaelen
;	Version 1.3 - 08.02.87
;		1.4 - 27.05.87 Console-Texthardcopy m. SHIFT CTRl F12
;		1.5 - CIO-Printer Haenger beseitigt
vers	equ	105
;
;	Copyright (C) 1985, 86, 87 by ruc:
;			1.7.3:Rainer Ellerbrake
;			      Eggeberger Str. 12
;			      4802 Halle (Westf.)
;
;			1.8.: Michael Staubermann
;			      Moraenenstr. 29
;			      4400 Muenster-Hiltrup
;
;****************************************************************
;
;	Globale Variable
;
	GLOBAL	START, ZZZZZZ, ZZZZZD
;
;................................................................
;
;	Externe Variable
;
	EXTERNAL SHEND, SHSINF, SHSACC, SHIOCNT, SHOUT, SHBIN, SHBOUT
	EXTERNAL INITS, SCCINIT
	EXTERNAL RTCOK, TRAP, MEMDMA, SENDMSG
	EXTERNAL ADLEISTE, MODECONF, URLK1, URLK2
	EXTERNAL HDOFS, HDLAST, HGBLKS, CPMOFS, CPMLAST, CPMBLKS
	EXTERNAL DES6502, PRG6502, LEN65, ST6502
	EXTERNAL TIMER, CENTR, I6502, ERROR
	EXTERNAL SCCKA, SCCKB, SCCAER, SCCBER, SCCATX, SCCBTX
;	
;................................................................
;
;	Konstanten
;
;	Eumel Systemadressen
;
VECBASE	EQU	0A000H			; Basisadresse fuer JP-Vektoren
;
EU0BLKS	EQU	VECBASE+10H
;
ESTART	EQU	VECBASE+1EH		; EUMEL Systemstart
;
ELEISTE	EQU	VECBASE+21H
;	
ELLEN	EQU	VECBASE+36H-ELEISTE
;
;................................................................
;
;	andere Adressen
;
WINDOW	EQU	0F000H		; Anfangsadresse des 4K Windows
LIMIT	EQU	WINDOW-1	; Obergrenze fuer EUMEL-Pufferbereich
;SHUG	EQU	0100H		; SHard Code Anfang
SHOG	EQU	1400H		; EUMEL 0 Anfang
RESVEC	EQU	0F3F4H		; Pruefsumme Reset Vektor (CBR=51H)
VPOINT	EQU	0F010H		; Pointer auf Hintergrund Volume
;
;	Adressen
;
BASE	EQU	WINDOW
;
STADR	EQU	BASE+01H
TSK65	EQU	BASE+80H	;Task fuer 6502
;
;	Zeichen
;
CR	EQU	0DH		;Carriage Return
LF	EQU	0AH		;Line Feed
;
;	sonstige Konstanten
;
CB1	EQU	0F0H		;Anfang Common Base 1 und Bank Base (log.)
BOTLNG	EQU	40H		; Laenge des Bootstrapladers in Bloecken
;
CMN1T0	EQU	51H		;Common Area 1 auf 6502 Adr. 0
CMN1T1	EQU	52H		;Common Area 1 auf 6502 Adr. $1000
;
	INCLUDE	PORTS.MAC
;
;-----------------------------------------------------------------------
;	Bereich ab hier darf NACH dem Systemstart ueberschrieben werden
;
KANAL:	DEFB	0		; log. Kanal, der Systemstarturlader enthaelt

SLEISTE:
	DEFB	'SHARD           ' ; Identifikationstext
	DEFW	8		; SHard-Interface-Version
MODE:	DEFW	0		; Vortest-Modus, 	wird ueberschrieben
ID4:	DEFW	0		; Lizenznummer des SHards,		"
ID5:	DEFW	0		; Installationsnummer des SHards,	"
ID6:	DEFW	0		; Reserviert f. SHard,			"
ID7:	DEFW	8000+vers	; Frei f. SHard: SHard-Version
	DEFW	0		; -
	DEFW	0		; -
	JP	SHOUT
	JP	SHBIN
	JP	SHBOUT
	JP	SHIOCNT
	JP	SHEND
	JP	SHSINF
	JP	SHSACC
	DEFW	0		; -
	DEFW	LIMIT		; obere Hauptspeicher-Grenze fuer EUMEL

;----------------------------------------------------------------
;
;	System laden
;
SYSRD:
	LD	HL,SHOG
	LD	DE,10
;
RDSLOP:
	PUSH	HL
	PUSH	DE		;Adresse + Block retten
;
	LD	A,(KANAL)
	CALL	SHBIN
;
	POP	DE
	POP	HL
	LD	A,C
	AND	A
	JR	NZ,RDSLOP	;Fehler -> Retry
;
	INC	H		;Adresse erhoehen
	INC	H
	INC	DE		;Blocknummer erhoehen
	LD	A,(EU0BLKS)
	ADD	10
	CP	E		; Alle gelesen ?
	JR	NC,RDSLOP	;Nein -> weiterlesen

;	System wurde geladen
;

;	SHard muss sich die benoetigten Teile der EUMEL-Linkleiste retten
;
	DI

	LD	HL,ELEISTE
	LD	DE,ADLEISTE
	LD	BC,ELLEN	; EUMEL-Linkleiste kopieren
	LDIR
;
;	EUMEL starten
;
	LD	HL,SLEISTE	; SHard-Linkleiste
	JP	ESTART		;EUMEL Lader starten
;
ZZZZZZ	EQU	$
;
;****************************************************************
;
;	S T A R T 
;
;	SHARD Initialisierung und Systemstart
;
;	1. Treiber initialisieren
;	2. Startup Meldung ausgeben
;	3. Interruptadressen setzen, Interrupt Modus setzen
;	4. Urlader laden
;	5. Systemstart
;
;	Bereich ab hier darf schon VOR dem Systemstart ueberschrieben werden
;	(darf vom Urlader ueberschrieben werden)

START:
	DI
	LD	SP,LIMIT	;obere Speichergrenze
;
;	Speicherkonfiguration setzen
;
	XOR	A		;Bank Area ab 0
	OUT0	(BBR),A
;
	LD	A,CB1		;Common Area 1 ab log. F000, Bank Area ab 0
	OUT0	(CBAR),A
;
	LD	A,83H		; Refresh Zyklus 2 Takte, alle 80 States
	OUT0	(RCR),A
;
;	Startvektor deaktivieren
;

	LD	A,0C3H		; JP-Code
	LD	(0),A		; JP-Code eintragen bei RESET/TRAP-Adr
	LD	HL,TRAP		; Falls RESET oder TRAP: Info ' shard' 'TRAP'
	LD	(1),HL		; Kein START, dieses Modul wird ueberschrieben

	LD	A,51H		;Common Area 1 auf Apple Speicher setzen
	OUT0	(CBR),A 
;
;	Durch Veraenderung der Pruefsumme des Reset-Vektors wird erreicht,
;	dass bei Betaetigen von Reset immer ein Kaltstart ausgefuehrt wird
;
	LD	(RESVEC),A	;veraendert

;
;	Anfang und Ende des Harddisk Volumes (HG) eintragen
;
	LD	HL,(VPOINT)	;Pointer auf Tabelle
	LD	A,H
	AND	0F0H		;4K-Bereich bestimmen
	RRCA
	RRCA
	RRCA
	RRCA
	ADD	A,51H		;Apple Speicher Anfangsoffset
	OUT0	(CBR),A		;in MMU eintragen
;
	LD	A,H
	OR	0F0H		;im 64180 Speicher ab F000H
	LD	H,A
;
	LD	BC,3		;3 Byte kopieren
	INC	HL
	LD	DE,HDOFS
	LDIR			;Anfang
;
;	Laenge des Bootstrapladers (SHARD) hinzuaddieren
;
	DEC	DE
	LD	A,(DE)
	ADD	A,BOTLNG	;Laenge in 256-Byte Pages
	LD	(DE),A
	DEC	DE
	LD	A,(DE)
	ADC	A,0
	LD	(DE),A
	DEC	DE
	LD	A,(DE)
	ADC	A,0
	LD	(DE),A
;
	INC	HL
	LD	C,3
	LD	DE,HDLAST
	LDIR			;Ende
;
	LD	A,51H
	OUT0	(CBR),A
;
;	Hintergrund Blockanzahl bestimmen
;
	LD	HL,HDOFS+2
	LD	DE,HDLAST+2	;Last-First ausrechnen
	CALL	CALCSIZ
	LD	(HGBLKS),HL	;Groesse eintragen, max. 32MB
;
;	CP/M-Volume Blockanzahl bestimmen
;
	LD	HL,CPMOFS+2
	LD	DE,CPMLAST+2
	CALL	CALCSIZ
	LD	(CPMBLKS),HL
;
	CALL	INICIO		; CIO, incl. Interrupts initialisieren

	CALL	INIINT		; Interrupt System starten

	CALL	INITS		; SCSI-Controller initialisieren
;
	CALL	CHKRTC		; Flag fuer gueltige RTC-Werte setzen
;
;	Mode, ID laden
;
	LD	HL,MODECONF
	LD	DE,MODE
	LD	BC,8		; 3 ID-Felder, 1 Mode-Feld
	LDIR

	LD	HL,STARTUP	; Startupmeldung ausgeben
	CALL	SENDMSG
;
;	Block 10 lesen (enthaelt EUMEL0-Linkleiste)
;

	LD	A,(URLK1)	; Kanal, auf dem der Urlader zuerst
	CALL	NEXTKAN		; gesucht wird
	JP	Z,SYSRD		; System von diesem Kanal laden

	LD	A,(URLK2)	; Kanal, auf dem der Uralder dann gesucht
	CALL	NEXTKAN		; wird
	JP	Z,SYSRD		; von diesem Kanal laden

	LD	HL,NOURL	;kein EUMEL Urlader
	CALL	SENDMSG
	DI
	HALT

NEXTKAN:
	LD	(KANAL),A
	LD	DE,0		; Default Typ
	LD	BC,5		; IOCONTROL 'size'
	CALL	SHIOCNT		; zum initialisieren
	LD	A,B		; 0 Bloecke, Fehler
	OR	C
	JR	NZ,NEXTOK
	INC	A		; NZ setzen, da vorher 0
	RET

NEXTOK:
	LD	A,(KANAL)
	LD	HL,VECBASE	; Hauptspeicher-Adresse
	LD	DE,10		; Block 10 lesen
	CALL	SHBIN

	LD	A,C		; Fehlerrueckmeldung
	AND	A		;erfolgreich ?
	RET	NZ

	JP	CKEUMEL		;Eumel Urlader ?

;................................................................
;
;	Berechnung der Groesse eines Volumes
;	Eingang: HL = Zeiger auf letztes der 3 Byte Anfangs LUN/Adresse
;		 DE = Zeiger auf letztes der 3 Byte Ende+1 LUN/Adresse
;	Ausgang: HL = Anzahl 512-Byte Bloecke dieses Volumes
;		 DE und A werden veraendert!
;
CALCSIZ:
	LD	A,(DE)
	SUB	(HL)
	LD	C,A
;
	DEC	DE
	DEC	HL
	LD	A,(DE)
	SBC	A,(HL)
	LD	H,A
	LD	L,C
	SRL	H		;256 -> 512 Byte Bloecke
	RR	L
	RET
;
;................................................................
;
;	Ueberpruefen ob Block 10 den Text EUMEL enthaelt
;
;	Exit:	B=0! bei F=Zero
;
CKEUMEL:
	LD	HL,VECBASE
	LD	DE,EUMTXT
	LD	B,5
;
CKLP:
	LD	A,(DE)
	CP	(HL)
	INC	HL
	INC	DE
	RET	NZ
	DJNZ	CKLP

	RET
;
;................................................................
;
STARTUP:
	DEFB	STUPLEN, 9, CR, LF, LF
	DEFB	'   EUMEL auf HD64180 & 6502', CR, LF
	DEFB	'   SHard-Interfaceversion 8', CR, LF
	DEFB	'   Version 1.5 vom 26.06.87', CR, LF
	DEFB	'    (c) 1985, 86, 87 by ruc', CR, LF
	DEFB	'   '
STUPLEN	EQU	$-STARTUP-1
;
NOURL:
	DEFB	NOURLEN, CR, LF
	DEFB	'EUMEL-Urlader nicht gefunden', CR, LF
NOURLEN	EQU	$-NOURL-1
;
EUMTXT:
	DEFB	'EUMEL'
;
;-----------------------------------------------------------------
;
;	C H K R T C
;
;	RTC-Werte auf Gueltigkeit ueberpruefen
;

CHKRTC:
	LD	A,20H		; 2 (programmierte) eff. 3 Uhrenwaitstates
	OUT	(DCNTL),A

				; Testen, ob vernuenftige Werte vorhanden
				; (BCD, Uhr laeuft, 24h-Modus, Bereiche ok)
	XOR	A
	LD	(RTCOK),A	; 'Nicht ok' vorbesetzen

	IN0	A,(RTCRA)	; Register A der Uhr
	AND	7FH
	CP	20H		; 
	JR	NZ,CALEND	; falscher Wert

	IN0	A,(RTCRB)	; Register B der Uhr
	CP	2
	JR	NZ,CALEND	; falscher Wert

	IN0	A,(RTCYR)	; Jahr < 87 ?
	CP	87H
	JR	C,CALEND

	IN0	A,(RTCDY)	; Tag > 31
	CP	32H		; 
	JR	NC,CALEND
	LD	H,A

	IN0	A,(RTCMO)	; Monat > 12 ?
	CP	13H
	JR	NC,CALEND

 	OR	H
	JR	Z,CALEND	; Monat oder Tag = 0 ?

	IN0	A,(RTCM)
	CP	60H
	JR	NC,CALEND	; Minuten > 59 ?
	
	IN0	A,(RTCH)
	CP	24H
	JR	NC,CALEND	; Stunden > 23 ?
	
	LD	A,0FFH
	LD	(RTCOK),A
	
CALEND:
	XOR	A
	OUT0	(DCNTL),A	; 0 (prog.) I/O Waitstates, 0 Memory Waitst.
	RET

;................................................................
;
;	I N I C I O
;
INICIO:

;	CIO initialisieren

	IN0	C,(CIOCTL)	;Dummy Read
	LD	B,INILNG
	LD	HL,INITAB	;CIO Initialisierungstabelle

INILOP:
	LD	C,(HL)		;Wert holen
	OUT0	(CIOCTL),C	;und ausgeben
	INC	HL
	DJNZ	INILOP
	RET

;......................................................................
;
;	I N I I N T
;
;	Interrupt System starten
;
INIINT:
	CALL	SCCINIT		;SCC initialisieren
;
;	6502-Programmstueck verschieben
;
	LD	A,1		; Transferrichtung 64180 --> 6502
	LD	BC,LEN65	; Laenge des Programmstuecks
	LD	DE,PRG6502	; Startadresse im log. 64180-Speicher
	LD	HL,DES6502	; Destinationadresse im Basisspeicher
	CALL	MEMDMA		; Bytes transferieren
;
	LD	B,(CBR)		; CBR merken

	LD	A,CMN1T0
	OUT0	(CBR),A

	LD	HL,ST6502	;Startadresse 6502-Routinen
	LD	(STADR),HL
	LD	A,4		;6502 Teil starten
	LD	(TSK65),A
;
	OUT0	(CBR),B		;CBR wieder zuruecksetzen
;
	LD	HL,VECTAB	; Interrupttabelle
	LD	DE,18H		; Destination
	LD	BC,ITABLEN	; Transferlaenge
	LDIR

	XOR	A		;interne Interrupts ab Vektor 0040
	LD	I,A		;externe Interrupts ab 0018H
	LD	A,40H
	OUT0	(IL),A
;
	IM	2		; Fuer INT0 Interrupt Modus 2 benutzen
	LD	A,3		;Enable Interrupt 0 and 1
	OUT0	(ITC),A
;
;
;	6502 Interrupts hardwaremaessig freigeben
;
	LD	A,0B0H		;CIO PC2 auf Low setzen
	OUT0	(CIOCD),A
	LD	A,0B4H		;CIO PC2 auf High setzen
	OUT0	(CIOCD),A

	EI

	RET

;...........................................................................
;
;	CIO Initialisierungs Tabelle
;

INITAB:
;*	DEFB	0,1		;Set Reset Bit (raus: kein Recalibrate mehr)
	DEFB	0,0		;Reset Reset Bit
	DEFB	1,0		;Master configuration control

;	SCSI-Interface-Leitungen

	DEFB    20H,00000010B	;Port A Mode Reg.
	DEFB	22H,01000010B	;Port A Data Path Polarity Reg.
	DEFB	23H,10111101B	;Port A Data Direction Reg.
	DEFB	24H,0		;Port A Special I/O Control
	DEFB	25H,10101100B	;Port A Pattern Polarity
	DEFB	26H,0		;Port A Pattern Transition
	DEFB	27H,10101100B	;Port A Pattern Mask
	DEFB	0DH,0		;Port A Data
	DEFB	02H,18H		;Port A Interrupt Vector (** TEST **)
	DEFB	08H,11100000B	;Port A Command: Clear IE
	DEFB	08H,00100000B	;Port A Command: Clear IUS & IP

;	General Purpose Port (Centronics, SCSI, 6502-IRQ-Maske)

	DEFB	06H,00000001B	;Port C Data Direction Reg.
	DEFB	05H,00001000B	;Port C Data Path Polarity Reg.
	DEFB	07H,0		;Port C Special I/O Control
	DEFB	0FH,4		;Port C Data Register

;	Centronics Interface

	DEFB	28H,10010000B	;Port B Mode
	DEFB	29H,01000000B	;Port B Handshake: Strobed
	DEFB	09H,00100000B	;Port B Command: Clear IUS & IP
	DEFB	2AH,0		;Port B Data Path Polarity
	DEFB	2CH,0		;Port B Special I/O Control
	DEFB	03H,30H		;Port B Interrupt Vektor

;	Deskew Timer

;	DEFB	1EH,00000010B	;Counter 3 Mode Specification
;	DEFB	0CH,00100000B	;Counter 3 Command and Status
;	DEFB	1AH,0		;Counter 3 Time Constant MSB
;	DEFB	1BH,7		;Counter 3 Time Constant LSB (2,268 us)
;	DEFB	0CH,11100100B	;Counter 3 Gate Enable

;	Timer

	DEFB	1CH,10000000B	;Counter/Timer 1 Mode Spec. Reg.
	DEFB	1DH,10000000B   ;Counter/Timer 2 Mode Spec. Reg.
	DEFB	0AH,00100000B	;Counter/Timer 1 Command: Clear IP & IUS
	DEFB	0BH,00100000B	;Counter/Timer 2 Command: Clear IP & IUS
	DEFB	16H,HIGH 38400  ;Time Constant 1 MSB
	DEFB	17H,LOW 38400   ;Time Constant 1 LSB
	DEFB	18H,0		;Time Constant 2 MSB, mit Timer 1 zus. 50ms
	DEFB	19H,4		;Time Constant 2 LSB
	DEFB	04H,18H		;Interrupt Vector Counters

;	CIO-Interrupts freigeben

	DEFB	01H,11110111B	;Master Config. Register
	DEFB	00H,10000010B	;Master Interrupt Enable

	DEFB	09H,11000000B	;Port B Command: Set IE

	DEFB	0BH,11000110B	;Counter/Timer 2 Command: Set IE
 	DEFB	0AH,11100110B	;Counter/Timer 1 Command: Clear IE

INILNG	EQU	$-INITAB

;****************************************************************
;
;	Interrupt Vektor Tabelle, wird kopiert
;
VECTAB:
	DEFW	TIMER	;18	Timer Interrupt (CIO Counter 2)
	DEFW	ERROR	;1A
	DEFW	ERROR	;1C
	DEFW	ERROR	;1E
	DEFW	SCCBTX	;20	SCC Transmitter Interrupt (Kanal B)
	DEFW	ERROR	;22	SCC EXT/Status Interrupt (Kanal B) 
	DEFW	SCCKB	;24	SCC Receive Char. available (Kanal B)
	DEFW	SCCBER	;26	SCC Special Receive Condition (Kanal B)
	DEFW	SCCATX	;28	SCC Transmitter Interrupt (Kanal A)
	DEFW	ERROR	;2A	SCC EXT/Status Interrupt (Kanal A) 
	DEFW	SCCKA	;2C	SCC Receive Char. available (Kanal A)
	DEFW	SCCAER	;2E	SCC Special Receive Condition (Kanal A)
	DEFW	CENTR	;30	Centronics Interface
	DEFW	ERROR	;32
	DEFW	ERROR	;34
	DEFW	ERROR	;36
	DEFW	ERROR	;38
	DEFW	ERROR	;3A
	DEFW	ERROR	;3C
	DEFW	ERROR	;3E
	DEFW	I6502	;40	INT1 = 6502 Interrupt
	DEFW	ERROR	;42	INT2 = unbenutzt
	DEFW	ERROR	;44	Timer Channel 0 = unbenutzt
	DEFW	ERROR	;46	Timer Channel 1 = unbenutzt
	DEFW	ERROR	;48	DMA Channel 0 = unbenutzt
	DEFW	ERROR	;4A	DMA Channel 1 = unbenutzt
	DEFW	ERROR	;4C	CSI/O = unbenutzt
	DEFW	ERROR	;4E	ASCI Channel 0 = unbenutzt
	DEFW	ERROR	;50	ASCI Channel 1 = unbenutzt

ITABLEN	EQU	$-VECTAB
;
;.....................................................................

ZZZZZD:	END