Z80-EMUF wiederbelebt

EMUF Überblick

Die Zeitschrift mc – Die Mikrocomputer-Zeitschrift hat in den frühen achtziger Jahren diverse Anleitungen für Einplatinen-Computer veröffentlicht. Dazu zählen auch diverse EMUF (Einplatinen-Mikrocomputer für universelle Festprogramm-Anwendungen) Varianten, die auf den damals gebräuchlichsten CPUs basierten.

Die EMUFs waren nicht dafür gedacht, Programme zu entwickeln, weil sie von Haus aus nicht über ein Monitorprogramm und eine Bedieneroberfläche verfügten, sondern sollten eine Art softwaregesteuerte Logikschaltung sein. Das bedeutet, dass der EMUF in Verbindung mit einem Anwendungsprogramm (im EPROM), das auf einem anderen Computer entwickelt wurde, zu einem Controller für alle möglichen Steueraufgaben gemacht werden konnte.

Vor einiger Zeit konnte ich bei ebay einen Z80-EMUF erwerben, der in der mc 4/1983 beschrieben wurde.

Um den Z80-EMUF wieder in Betrieb zu nehmen, wurden zwei Dinge benötigt: eine elektrische und mechanische Adaption mit Spannungsversorgung und ein Testprogramm.

Mechanische und elektrische Adaption

Die mechanische Adaption ist im Titelbild zu diesem Blog nachvollziehbar. Die Spannungsversorgung erfolgt über ein Netzteil mit USB-Kabel (der EMUF benötigt 5 Volt) und alle Anschlüsse sind auf die Pinheader der Basisplatine geführt und damit für weitere Tests und Experimente verfügbar. Die Leiterplatte wird einfach in die Kartenhalter eingeschoben.

Z80-EMUF im Halter

Testprogramm

Die Veröffentlichung in der mc bietet auch ein Testprogramm an, bei dem alle Hardwarekomponenten getestet werden (s. folgendes Listing).

0001   0000             .org 0000h
0002   0000             ; Testprogramm für Z80 EMUF:
0003   0000             ; auf den Ausgängen der PIO's
0004   0000             ; wird nacheinander gezählt
0005   0000             
0006   0000             RAM 	equ 8000h
0007   0000             
0008   0000             PIO0 	equ 0
0009   0000             PIO1 	equ 10h
0010   0000             ; PIO Adressen:
0011   0000             ; PIO+0: Port A
0012   0000             ; PIO+1: Port B
0013   0000             ; PIO+2: Control Port A
0014   0000             ; PIO+3: Control Port B
0015   0000             
0016   0000 3E CF       EMUT1: 	ld a,11001111b; Initialisierung aller Ports auf Einzelbit Ein- und Ausgabe
0017   0002 D3 02       	out (PIO0+2),a
0018   0004 3E 00       	ld a,0
0019   0006 D3 02       	out (PIO0+2),a
0020   0008 3E CF       	ld a,11001111b
0021   000A D3 03       	out (PIO0+3),a
0022   000C 3E 00       	ld a,0
0023   000E D3 03       	out (PIO0+3),a
0024   0010             	
0025   0010 3E CF       	ld a,11001111b; Initialisierung PIO2 analog zu PIO1
0026   0012 D3 12       	out (PIO1+2),a
0027   0014 3E 00       	ld a,0
0028   0016 D3 12       	out (PIO1+2),a
0029   0018 3E CF       	ld a,11001111b
0030   001A D3 13       	out (PIO1+3),a
0031   001C 3E 00       	ld a,0
0032   001E D3 13       	out (PIO1+3),a
0033   0020             
0034   0020 06 00       LOOP:	ld b,0
0035   0022 78          L1:	ld a,b
0036   0023 32 00 80    	ld (RAM),a; RAM Adresse 00 .. FF wird angesprochen 
0037   0026 3A 00 80    	ld a,(RAM)
0038   0029 D3 00       	out (PIO0+0),a
0039   002B 05          	dec b
0040   002C C2 22 00    	jp nz,L1
0041   002F             
0042   002F 06 00       	ld b,0
0043   0031 78          L2:	ld a,b; jetzt 2. Port PIO0
0044   0032 32 00 80    	ld (RAM),a;  
0045   0035 3A 00 80    	ld a,(RAM)
0046   0038 D3 01       	out (PIO0+1),a
0047   003A 05          	dec b
0048   003B C2 31 00    	jp nz,L2
0049   003E             
0050   003E 06 00       	ld b,0
0051   0040 78          L3:	ld a,b; jetzt 1. Port PIO1
0052   0041 32 00 80    	ld (RAM),a;  
0053   0044 3A 00 80    	ld a,(RAM)
0054   0047 D3 10       	out (PIO1+0),a
0055   0049 05          	dec b
0056   004A C2 40 00    	jp nz,L3
0057   004D             
0058   004D 06 00       	ld b,0
0059   004F 78          L4:	ld a,b; jetzt 2. Port PIO1
0060   0050 32 00 80    	ld (RAM),a;  
0061   0053 3A 00 80    	ld a,(RAM)
0062   0056 D3 11       	out (PIO1+1),a
0063   0058 05          	dec b
0064   0059 C2 4F 00    	jp nz,L4
0065   005C             	
0066   005C C3 20 00    	jp LOOP
0067   005F             
0068   005F             	DS 1000h
0069   105F             .END		

Das Testprogramm kann im Intel-Hex-Format (als .zip Datei) heruntergeladen werden und in ein EPROM gebrannt werden.