KOOP 85

KOOP 85

Einplatinencomputer KOOP 85.1

Robert Krenz

17.01.1990

Inhaltsverzeichnis

1

B e sc h r e ib u n g d es KO O P 85.1 , 2

1.1 Spannungsversorgung.....................................................................• ♦ .............................................. 2

1.2 Der Mikroprozessor 8085 ................................................................................................................... 2

1.3 Der Adressenspeicher 74HCT573 2

1.4 Der Adreßdecoder 74LS138

1.5 Die Speicherbausteine ................................

1.6 Die Parallelschnittstelle 8255 ................ * ...................................................................................... 5

1.7 Der Timer 8253 ....................................................................................................................................

6

3

4

1.8 Der ÜSART 8251 ................................................................................................................................. 7

1.9 Der Pegelumsetzer MAX 232 .......................................................................................................... 7

1.10 Der serielle R E S E T .............................................................................................................................. 7

2

T e st-E P R O M V ersio n

1.0

9

2.1 Funktionsbeschreibung ....................................................................................................................... 9

2.1.1 Test der Parallel-Ausgabe (Kanal A) ................................................................................ 9

2.1.2 Test der Parallel-Eingabe (Kanal C) ................................................................................ 10

2.1.3 Test des Speicherbereichs (RAM-Test) ............................................................................ 10

2.1.4 Test des Timers und der seriellen S c h n ittste lle ...............................................................

11

2.2 A ssem bler-L isting................................................................................................................................. 12

2.2.1 Bemerkungen zum Assemblerprogramm T E S T 1 .A S M ..................................................

12

2.2.2 L i s t i n g ........................................................................................................................................ 13

3 T a b e lle n u n d S k izz en 19

3.1 S ch a ltu n g sa u fb a u ................................................................................................................................. 19

3.1.1 Bauteilliste .............................................................................................................................. 19

3.1.2 S c h a ltp la n ................................................................................................................................. 21

3.1.3 Bestückungsplan .................................................................................................................... 22

3.2 Übersicht Speicherbausteine ............................................................................................................. 23

3.3 8085-B efeh lssatz.................................................................................................................................... 24

3.4 Unterprogramme ................................ 28

3.5 Steuerbefehle des E d ito r s .................................................................................................................... 32

© 1994 printed by Tilo Röder with T ^ /D T g X

K a p itel 1

Beschreibung des KOOP 85.1

1.1 S pannungsversorgung

Der Einplatinencomputer wird mit einer Betriebsspannung von 5 V betrieben, die aus einem stabilisierten

Netzteil zugeführt werden muß. Die Stromaufhahme beträgt ca. 300 mA.

Als Schutz gegen Verpolung ist eine Diode 1N4007 vorgesehen, die in die Plus-Versorgungsleitung ge­

schaltet ist. Für den Rechner ergibt sich somit eine Versorgungsspannung von ca. 4,3 V. Diese geringe

Versorgungsspannung hat bisher noch zu keinerlei Beeinträchtigung in bezug auf die Betriebssicherheit

geführt.

1.2 D er M ikroprozessor 8085

Zur Takterzeugung wird ein 4 MHz-Quarz verwendet. Durch den internen Frequenzteiler der CPU ergibt

sich ein Systemtakt von 2 MHz.

Der CPU-Eingang RESET IN ist mit einer Power-On-RESET-Schaltung versehen, so daß beim Anlegen

der Betriebsspannung von + 5 V ein RESET ausgeführt wird. Desweiteren läßt sich mit Hilfe des Tasters

S l, der an der Pfostenleiste X12 angeschlossen ist, ein Taster-RESET auslösen. Als dritte Möglichkeit

zum Zurücksetzen des Einplatinencomputers ist eine Schaltung vorgesehen, mit deren Hilfe eine RESET-

Auslösung über den Eingang RxD der seriellen Schnittstelle ermöglicht wird (siehe 1.10).

Die Interrupt-Eingänge TRAP, RST 7.5, RST 6.5, RST 5.5 und INTR, sowie die Anschlüsse READY,

HOLD, SID und SOD sind auf die Pfostenleiste X14 gelegt. Von hier aus lassen sich diese Signale bei

Bedarf verwenden.

Alle CPU-Signale werden ungepuffert auf die entsprechenden Bausteine geschaltet.

1.3 D er A d ressen sp eich er T4HCT573

Zur Speicherung der

8

niederwertigen Adreßsignale wird ein

8

-Bit-Kippglied verwendet.

Mit Hilfe

des ALE-Signals der CPU werden die Adreßsignale im ersten Taktzyklus eines jeden Maschinenzyklus

gespeichert und stehen für die gesamte Zeit des Maschinenzyklus an den Ausgängen zur Verfügung. Diese

Ausgangssignale bilden mit den

8 höherwertigen Adreßsignalen den eigentlichen Adreßbus (AO. . .A15).

Der Adressenspeicher wird beim Auftreten eines HLDA-Signais in den Tristate-Zustand geschaltet (HLDA

= HOLD ACKNOLEDGE, Quittierungssignal der CPU auf eine HOLD-Anforderung). Ebenso werden

nach einer HOLD-Anforderung die CPU-Daten-, Adreß- und Steuerausgänge (RD, WR, IO/M ) hoch­ ohmig.

1.4. DER ADREßDECODER 74LS138

3

1.4 D er A d reß d ecod er 74LS138

Mit Hilfe des CPU-Steuersignals IO/M findet eine Selektion zwischen Memory-Zugriffen (IO/M =Low)

und I/O-Zugriffen (IO/M = High) statt. Die Adreßsignal A 14 und A 15 teilen sowohl den Memory-Bereich

als auch den I/O-Bereich in vier gleichgroße Adreßbereiche, so daß sich folgender Zusammenhang ergibt:

IO/M A15 A14 Zugriff Ausgangs L

Adreßbereich

1

1

1

1

0

0

0

0

0

0

0

0

1

1

1

1

0

MEMO

1

MEM1

0

MEM2

1

0

1

0

1

MEM3

(IOO)

101

102

103

YO

Y1

Y2

Y3

Y4

Y5

Y

6

Y7

0000-3FFF

4000-7FFF

8000-BFFF

COOO-FFFF

00-3 F

40-7F

80-BF

CO-FF

Die vier Memory-Aktivierungssignale werden mit Hilfe einer Diodenlogik zu den eigentlichen CHIP-

SELECT-Signalen für die Speicherbausteine verknüpft. Insgesamt sind drei Sockel zur Aufnahme von

Speicherbausteinen verschiedener Typen vorgesehen (siehe 1.5 und 3.2). Die oben angegebenen Adreßbe­

reiche lassen sich verschiedenartig auf die drei Speichersockel aufteilen. (Ansicht von der Bestückungsseite,

Stecker für die serielle Schnittstelle liegt rechts):

X9:

U3

5

4

MEM3

MEM2

COOO 8000

U2

3 2

U l

1

MEM1

MEMO

4000

0000

FFFF BFFF 7FFF 3FFF

Zu beachten ist die Lage der drei Speicher-Sockel auf der Platine (siehe 3.1.3)!

Der Speichersockel U l ist grundsätzlich mit MEMO verbunden (0000-3FFF), und kann mit einem EPROM

bis 16 kByte bestückt werden. Wird ein Speicher mit geringerer Speicherkapazität verwendet, so wie­

derholt sich seine Adreßlage innerhalb des 16 k-Bereiches entsprechend oft. Wird für den Adreßbereich

0000-7FFF ein 32 kByte-EPROM verwendet, so müssen die Stifte 2-1 an X9 miteinander verbunden

werden.

Ebenso läßt sich im oberen Adreßbereich bei unbeschaltetem Stift 5 an X9 ein RAM-Baustein bis 16 kByte

einsetzen (U3). Auch hier werden Speicher mit geringerer Speicherkapazität mehrfach im Adreßbereich

selektiert. Durch eine Brücke 5-4 an X9 wird U3 im Adreßbereich von 8000-FFFF selektiert, und es

kann ein 32 kByte-RAM verwendet werden.

Werden U l oder U3 nicht mit 32 kByte bestückt (16 kByte oder weniger), so kann jeweils ein 16 k-

Adreßbereich MEM

1

oder MEM2 auf den mittleren Sockel U2 gelegt werden.

So sind je nach Anwendungsfall verschiedene Kombinationen von Speicherbausteinen mögüch.

1.5.

DIE SPEICH ERBAU STEINE

4

1.5 D ie S p eich erb au stein e

Um verschiedene Variationsmöglichkeiten bei der Bestückung mit Speicherbausteinen zu erhalten, sind

U l bis U3 als 28-polige Sockel für Bausteine nach dem Bytewide-Konzept ausgelegt:

2 k (24-pol.)

4 k (24-pol.)

8

k (28-pol.)

16 k (28-pol.)

32 k (28-pol.)

EPROM 2716

EPROM 2732

EPROM 2764

EPROM 27128

EPROM 27256

RAM 6116 / 4116 o.ä.

RAM 6164 / 6264 o.ä.

RAM 51256 / 43256 o.ä.

Bei der Bestückung mit 24-poligen Speicherbausteinen müssen diese mit der Markierung nach ober aber

bündig zum unteren Sockelrand eingesetzt werden (Ansicht von der Bestückungsseite, Stecker für die

serielle Schnittstelle liegt rechts).

Durch Einsetzen von Brücken (Jumper) auf die Stiftleisten X2, X3 und X4 lassen sich die verschiedenen

Speichertypen wählen.

B e d e u tu n g der S tiftle is te n X 2 , X 3 , X4:

N o tw e n d ig e B rücken:

E P R O M

Vcc —

WR ----

A14 ----

3

----

4

1

2

WR —

5

A l l —

----

6

7

A13 —

8

13

12

11

10

16

15

14

9

Pin 27

Pin 23

Pin 26

2

k

-

R A M

8

k 32 k

(2-15) (2-15)

(5-12)

-

(

6

-

11

) (

6

-

11

)

(7-10) (7-10)

-

-

(8-9)

Für die RAM-Bestückung des Speichersockels U3 muß je nach verwendetem RAM-Baustein folgende

Umschaltung vorgenommen werden:

R A M -U m sc h a ltu n g X 16:

2/8 k

T M T

32 k

(2-3)

1

.

6

.

DIE PAR ALLELSC H N ITTSTELLE 8255

5

1.6 D ie P a ra llelsch n ittstelle 8255

Als CHIP-SELECT-Signal für den programmierbaren Schnittstellenbaustein wird 103 verwendet, so daß

die Parallelschnittstelle im Adreßbereich von CO-FF erreichbar ist. Mit Hilfe der Adreßleitungen AO und

A l erfolgt die Auswahl der verschiedenen Register innerhalb des Bausteins. Aufgrund der unvollständigen

Dekodierung erscheinen die I/O-Register insgesamt 32 mal über den angegebenen Adreßbereich verteilt

(immer im Abstand von 4). Es kann daher eine beliebige Basisadresse (modulo 4) innerhalb des angege­ benen Adreßbereiches gewählt werden. So gilt z.B. für die Basisadresse EO hex:

Lesen Schreiben

Kanal A

Kanal B

Kanal C

Steuerkanal

IN OEO OUT OEO

IN 0E1 OUT 0E1

IN 0E2 OUT 0E2

— OUT 0E3

Die Programmierung des 8255 erfolgt durch Ausgabe eines Betriebsartenwortes auf den Steuerkanal der

Parallelschnittstelle. Dieses Betriebsarten wort ist wie folgt codiert:

1 0 0 0 0 0 0 0

Funktion Port C-Low (PCO... PC3)

0 - Ausgabe

1 - Eingabe

Funktion Port B

Betriebsart Port B und C-Low

0

-

einfache Ein-/Ausgabe

1 - getastete Ein-/Ausgabe

Funktion Port C-High (P C 4 ... PC7)

Funktion Port A

Betriebsart Port A und C-High

00 - einfache Ein-/ Ausgabe

01 - getastete Ein-/ Ausgabe

IX

stets

1

1.7.

DER TIM E R 8253

6

Die Ausgänge der 3

8

-Bit-Kanäle sind auf die zweireihige Stiftleiste X13 geführt (Ansicht von der

Bestückungsseite, Stecker für die serielle Schnittstelle liegt rechts):

G N D --------14 13

PB

6

15

12

PB4 — 16

11

PB2 — 17

10

PCI

PB0 — 18 9

19

8

P C 3 ---------

P C 5 ---------

20

7

21 6

P C 7 ---------

22

5

PA

6

— 23

4

PA4 — 24 3

PA2 — 25

PA0 —

26

2

1

— PB7

— PB5

— PB3

— PB1

--------- PCO

--------- PC2

--------- PC4

--------- PC

6

— PA7

— PA5

— PA3

— PA1

1.7 D er T im er 8253

Der Timer wird mit 101 selektiert und ist daher im Adreßbereich 40. ..7 F anzusprechen. Ebenso wie

bei der Parallelschnittstelle erfolgt die Auswahl der internen Register mit Hilfe von AO und A l. Diese

unvollständige Dekodierung führt wiederum zu einer Mehrfachselektion innerhalb des angegebenen Adreß-

bereiches. Für die Basisadresse 40 hex ergibt sich:

Lesen Schreiben

Kanal 0

Kanal

1

Kanal 2

IN 040 OUT 040

IN 041 OUT 041

IN 042 OUT 042

Steuerkanal — OUT 043

Die Taktein- bzw. Ausgänge des Timer-Bausteins sind wie folgt mit Hilfe von X I1 verschaltet (Ansicht

von der Bestückungsseite, Stecker für die serielle Schnittstelle liegt rechts):

X l l

OUT2 - ------4

CLK2 — 5

6 1

3

2

p — CPU-CLKOUT (2 MHz)

— ----- - CLK0 / CLK

OUT1

1

Kanal 0 dient als Baudratengenerator für den seriellen Schnittstellenbaustein 8251. Aus diesem Grund

wird der Takteingang CLK0 mit dem Systemtakt von 2 MHz versorgt. So wird z.B. für eine Übertra­

gungsrate von 9600 Bd die 16-fache Frequenz als Schiebetakt benötigt (153,6 kHz). Der Schiebetakt

läßt sich mit Hilfe des Kanals 0 in der Betriebsart 3 (Rechteckgenerator) mit einem Teilfaktor von 13

erzeugen: 2 M Hz/13=153,8 kHz. Der Ausgang OUTO ist mit den Takteingängen TxC und RxC des

USART verbunden. Kanal 1 kann frei programmiert werden. Die Eingangsfrequenz beträgt ebenfalls

2 MHz. Das Ausgangssignal OUT

1

( X ll, Pin

1 ) kann u.U. zur Interruptauslösung der CPU benutzt

werden. Der Kanal 2 erhält als Taktsignal wahlweise den Systemtakt von 2 MHZ (Brücke 5-2) oder das

Ausgangssignal OUT1 (Brücke 6-2), so daß die Kanäle 1 und 2 auch kaskadiert werden können. Das

Ausgangssignal OUT

2

steht an X l l , Pin 4 zur weiteren Verwendung zur Verfügung. Die GATE-Eingänge aller 3 Kanäle sind inaktiv geschaltet (H-Pegel).

-v -v

1.8. DER USART 8251

7

1.8 D er U S A R T 8251

Der serielle Schnittstellenbaustein 8251 wird mit 102 selektiert und ist daher im Adreßbereich 8 0 -

BF hex anzusprechen. Zur Auswahl der internen Register dient zusätzlich die Adreßleitung AO. Die

unvollständige Dekodierung führt wiederum zur Mehrfachselektion im angegebenen Adreßbereich. Für

die Basisadresse BO ergibt sich:

Register

Datenregister (TxBuffer, RxBuffer)

Controlregister (Betriebsart, Kommando, Status)

Adresse

BO

B l

Die Anschlüsse zur seriellen Übertragung werden dem Pegelwandler MAX 232 über die Stiftleiste X

6

zugeführt (siehe 1.9). Die USART-Signale TxREADY, TxEMPTY und RxREADY sind auf die Stiftleiste

X14 gelegt und können von hier aus u.U. zur Interruptauslösung der CPU weiterverwendet werden.

1.9 D er P eg elu m setzer M A X 232

Der Baustein MAX 232 dient zur Pegelumsetzung zwischen TTL- und V.24-Pegeln. Die Elektrolytkon­

densatoren C7, CIO, C13 und C14 dienen zur Ladungsspeicherung für die Erzeugung der V.24-Pegel

+12 V und -12 V durch den Pegelumsetzer MAX 232.

Die Signale zur seriellen Übertragung sind wie folgt mit Hilfe von X

6

, X7, dem Pegelwandler MAX 232

umd dem seriellen Anschlußstecker X

8 verschaltet (Ansicht von der Bestückungsseite, Stecker für die

serielle Schnittstelle liegt rechts):

X

6

M A X 232 X 7 X

8

S U B -D -9

TxD --------------------------------- - (TTL/V.24) ------------------------- —---- - TxD (3)

RxD ---------------------------------- (TTL/V.24) ---------------------------------- RxD (2)

RTS ----- -

CTS ------

1 8

2

7

D T R ----- 3

6

DSR -----4 5

Gnd

(TTL/V.24)

(TTL/V.24)

1

8

-----

-

RTS

(7)

2

7

-

----- CTS

(8)

3

6

----- - DTR

(4)

4

5 ------ DSR

(6)

Gnd (5)

1.10 D er serielle R E SE T

Die monostabile Kippstufe 74LS122 kann zur zusätzlichen RES ET-Auslösung eingesetzt werden. Die

RESET-Auslösung läßt sich mit Hilfe des seriellen Empfangssignals RxD steuern. Zur Triggerung der

Kippstufe werden die Signale RxD und der Systemtakt CLKOUT (2 MHz) verwendet. Im Ruhezustand

der seriellen Leitung liegt der RxD-Pegel auf High, so daß die Kippstufe ständig durch den Systemtakt

nachgetriggert wird (alle 500 ns). Während einer seriellen Übertragung über RxD wird der Pegel auf dieser

1.10. DER SERIELLE R E SE T

8

Leitung längstens für 10 Bitzeiten auf Low geschaltet (1 Startbit,

8

Datenbits, 1 Paritybit). Spätestens

bei der Übertragung der Stopbits geht der RxD-Pegel wieder auf High, so daß die Kippstufe durch den

Systemtakt wieder nachgetriggert wird.

Wird eine Übertragungsrate von 9600 Bd gewählt, so bedeutet dieses, daß die Kippstufe spätestens nach

10*1/9600 s = 1 ms nachgetriggert wird. Da die Impulszeit der Kippstufe auf ca. 2 ms festgelegt ist (C

8

,

Rjn), bleibt bei einer ordnungsgemäßen Übertragung das Ausgangssignal Q ständig auf H-Pegel, und es

wird kein RESET ausgelöst. Wird die RxD-Leitung dagegen länger als ca. 2 ms auf L-Pegel geschaltet, so

erfolgt bei geschlossener Brücke X10 eine RESET-Auslösung, die erst wieder aufgehoben wird, wenn RxD

wieder H-Pegel erlangt. Die Erzeugung eines genügend langen RxD-Low-Pegels könnte z.B. gezielt durch

den angeschlossenen seriellen Partner erfolgen, wenn dieser seine Sende-Übertragungsrate auf 1200 Bd

einstellt und das Datenbyte 00 sendet.

K a p itel 2

Test-EPROM Version 1.0

2.1 F u nk tion sb esch reib u ng

2.1.1 Test der Parallel-Ausgabe (Kanal A)

Zu Beginn des Testprogramms wird die Parallelschnittstelle 8255 wie folgt initialisiert:

B etrieb sarten w ort 8B hex:

1 0 0 0 1 0 1 1

Port C Eingabe (P C 3...P C 0)

Port B Eingabe (P B 7 ... PB0)

Betriebsart 0 (Port B und C-Low)

Port C Eingabe (P C 7.. .PC4)

Port A Ausgabe (P A 7... PA0)

Betriebsart 0 (Port A und C-High)

Betriebsartenwort

Die Ausgabe des Betriebsartenwortes erfolgt über den Steuerkanal des 8255 (hier Portadresse 0E3 hex).

Anschließend erfolgt die Ausgabe eines Bitmusters im Abstand von ca. 1 s. Als Bitmuster wird eine

links-rotierende 1-Bit-Ausgabe verwendet (Lauflicht) :

1

.Sekunde:

0 0 0 0 0 0 0 1

2

.Sekunde:

0 0 0 0 0 0 10

3.Sekunde:

0 0 0 0 0 1 0 0

8

.Sekunde:

10 0 0 0 0 0 0

Da innerhalb der 1-Sekunden-Zeitschleife das Bitmuster immer wieder in den Ausgabekanal geschrieben

wird, ist eine Kontrolle des CHIP-SELECT-Signals und des WRJTE-Signals an der Parallelschnittstelle

mit Hilfe des Oszilloskops möglich.

Der Test des Ausgabekanals A ist nach der Ausgabe von insgesamt

8 Bitmustern beendet. Es erfolgt

automatisch der Test des Eingabekanals C.

2

.

1

.

FUNKTIONSBESCHREIBUNG

10

2.1.2 Test der Parallel-Eingabe (Kanal C)

Der Eingabekanal C wird gelesen und der Eingabewert zum schon getesteten Ausgabekanal A ausgegeben.

Damit können alle Bits der Eingabe einzeln oder kombiniert getestet werden. Das Einlesen und Ausgaben

der Eingabewerte erfolgt periodisch mit Hilfe einer Programmschleife, so daß auch hier bei Fehlfunktion

eine Überprüfung der entsprechenden Signale am Baustein 8255 vorgenommen werden kann.

Der Test des Eingabekanals C wird beendet, wenn folgender Eingab wert eingestellt wird:

1 0 0 0 0 0 0 0

80 hex = > Ende Eingabe-Test

Es erfolgt ein Sprung zur Testroutine des Speicherbereiches.

2.1.3 Test des Speicherbereichs (RAM-Test)

Der Speicherbereich von 64 kByte wird in 4 Blöcken zu je 16 kByte getestet. Die Auswahl des zu testenden

Speicherblocks wird mit Hilfe der Eingabebits B3...B0 vorgenommen. Dabei muß das höchstwertige

Eingabebit B7 immer den Wert 1 beibehalten:

Eingabe

1 0 0 0 0 0 0 1

1 0 0 0 0 0 10

1 0 0 0 0 10 0

1 0 0 0 10 0 0

getesteter Speicherbereich

0000

... .3FFF

4000.. .7FFF

8000.. .BFFF

c o o o .. .FFFF

Beim Test eines Speicherbereiches wird für jede der 16384 Speicherstellen folgende Überprüfung vorge­ nommen:

• Inhalt des Speicherplatzes lesen und in CPU Zwischenspeichern

• 55 hex in den Speicherplatz schreiben

• vergleichen, ob Inhalt 55 hex

• AA hex in den Speicherplatz schreiben

• vergleichen, ob Inhalt A A hex

• gespeicherten alten Inhalt zurückschreiben

Während des Speichertests erfolgt folgende Anzeige über den Ausgabekanal A:

Ausgabe Bedeutung

1 0 0 0 0 0 0 0

1 1 1 1 1 1 1 1

0 0 0 0 0 0 0 0

kein RAM vorhanden (EPROM oder RAM unbestückt)

RAM vorhanden

Test des Speicherbereichs beendet

Nach dem durchgeführten Speichertest erfolgt noch eine kurze Zeitverzögerung von ca. 0,8 s, während

der die Ausgabeanzeige erhalten bleibt. Danach wird die Ausgabe auf LOW geschaltet.

Zu beachten ist, daß aufgrund der nicht-vollständigen Decodierung der Speicherbereiche alle Speicher­ bausteine mit einer geringeren Speicherkapazität als 16 kByte mehrfach innerhalb des selektierten Spei­ cherblocks angesprochen werden.

So wird z.B. ein 2 kByte RAM-Baustein im gesamten 16 kByte

Speicherbereich als RAM erkannt und angezeigt.

2.1

.

FUNKTIONSBESCHREIB UNG

1 1

Wurde ein intakter RAM-Bereich erkannt, so wird der Stack-Pointer auf die höchste RAM-Adresse in

diesem Speicherbereich eingestellt, so däß für die nachfolgenden Test-Routinen auch die Verwendung von

Unterprogrammen möglich ist.

Wird B7 auf 0 geschaltet, so wird der RAM-Test beendet und es erfolgt ein Sprung zu den Test-Routinen

für den Timer-Baustein und die serielle Schnittstelle. Da für diese Test-Routinen auch Unterprogramme

verwendet werden, muß vor diesem Test ein intaktes RAM erkannt worden sein:

0 0 0 0 0 0 0 0

00

hex Ende Speicher-Test

2,1.4 Test des Timers und der seriellen Schnittstelle

Innerhalb des folgenden Testabschnitts sind folgende Umschaltungen möglich:

Eingabe TesURouiine

0 0 0 0 0 0 0 1

Periodische Timerinitialisierung

0 0 0 0 0 0 1 0

Ausgabe eines Textes zum Terminal

0 0 0 0 0 1 0 0

Tastaturabfrage und Bildschimausgabe

0 0 0 0 1 0 0 0 Software-RESET

P e r io d isc h e T im erin itia lisier u n g

Der Timer-Kanal 0 wird als symmetrischer Rechteckgenerator initialisiert und mit der Zählkonstanten

13 dez geladen. Damit wird der systemtakt von 2 MHz durch 13 dividiert und am ausgang des Timerkanals

OUTO steht ein Rechtecksignal mit einer frequenz von ca 154 kHz zur Verfügung. Dieser Takt wird

auch zur Versorgung der seriellen Schnittstelle benötigt. Die Initialisierung des Timers wird periodisch

wiederholt, solange mit Hilfe der Paralleleingabe dieser Testabschnitt ausgewählt bleibt. Damit ist eine

meßtechnische Überprüfung der entsprechenden Bau&teinsignale des Timers 8253 möglich.

A u s g a b e e in e s T ex te s zu m T erm in al

Die serielle Schnittstelle wird auf folgende Betriebsart initialisiert:

• 9600 Baud (TxC und RxC = 154 kHz, Teiler 16 —>9625 Hz Schiebetakt)

# No Parity,

8

Bit/Char, 2 StopBits, asynchron

Anschließend erfolgt die ständige Ausgabe des folgenden Textes zum Terminal, solange mit Hilfe der

Paralleleingabe dieser Testabschnitt audgewählt bleibt:

TERMINAL-TEST:

THE QUICK BROWN FOX JUMPED OVER THE LAZY DOGS, 0123456789

T asta tu ra b fra g e u n d B ild sch irm a u sg a b e ( T erm inal )

Innerhalb dieser Routine wird der serielle Eingabekanal und damit die Tastatur des Terminals abgefragt

und ein gelesenes Zeichen zum Terminalbüdschirm ausgegeben. Damit läßt sich die serielle Übertragung

zwischen dem Einplatinencomputer und einem angeschlossenem Terminal überprüfen.

S oftw a re-R E S E T (s ta r te T est-E P R O M er n e u t)

Wird mit Hilfe der Paralleleingabe auf diesen Testabschnitt umgeschaltet, so erfolgt ein Sprung zur

Adresse 0000 hex, so daß das Testprogramm erneut gestartet wird.

2.2. ASSEM BLER-LISTING

12

2.2 A ssem b ler-L istin g

2.2.1 Bemerkungen zum Assemblerprogramm TEST1.ASM

Aufgrund der I/O-Adreßdekodierung (74LS138) des KOOP 85.1 werden die I/O-Bausteine in folgenden

Adreßbereichen angesprochen:

Selektierter I/O-Baustein Adreßbereich

Timer-Baustein 8253

Serieller Schnittstellenbaustein 8251

0 0 ...3F

4 0 ... 7F

80.. .BF

Paralleler Schnittstellenbaustein 8255 CO... FF

Als Basisadresse zur Dekodierung der I/O-Bausteine werden hier folgende Adressen gewählt, um eine

Kompatibilität zum MFA-MC-System zu erreichen:

I/O-Baustein

Timer

Serielle Schnittstelle

Parallele Schnittstelle

Adreßbereich

4X

BX

EX

Die Dekodierung einzelner Register innerhalb der I/O-Bausteine erfolgt mit Hilfe der Adreßleitungen A0

(und) A l, so daß die verschiedenen I/O-Register wie folgt angesprochen werden können:

Timer

Kanal 0

Kanal 1

Kanal 2

S teuer kanal

I/O-Adresse

40

41

42

43

Serielle Schnittstelle

Datenregister (TxBuffer, RxBuffer)

Serielle Schnittstelle

I/O - Adresse

B0

B l

Parallele Schnittstelle I/O-Adresse

Kanal 0

Kanal 1

Kanal 2

Steuerkanal

E0

E l

E2

E3

Zur Assemblierung eines Programmes, daß später als lauffähiges Maschinenprogramm innerhalb eines

Adreßbereiches eingesetzt werden soll, in dem das MFA-MC-System seinen EPROM-Bereich liegen hat

*

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

2.2. ASSEM BLER-LISTING

13

muß der durch den Assembler erzeugte Maschinencode nicht in diesen Orginal-EPROM-Adreßbereich

abgelegt werden, sondern innerhalb eines anderen Adreßbereiches im RAM-Arbeitsspeicher. Von dort

aus läßt sich das Programm in ein EPROM programmieren.

Um dennoch die richtigen absoluten Adressen für das Maschinenprogramm zu erzeugen, muß bei allen

Sprungbefehlen und allen Unterprogrammaufrufen ein entsprechender OFFSET abgezogen werden. Mit

Hilfe dieses Tricks wird der assemblierte Maschinencode zwar an die durch die ORG-Anweisung definierte

Adresse innerhalb des RAM-Arbeitsspeichers abgelegt, wobei aber die innerhalb des Maschinenpro­ gramms notwendigen absoluten Adressen den tatsächlichen späteren Zieladressen entsprechen.

Aufgrund dieses beschriebenen Assemblierens mit

OFFSET EQU

0

C

000 ergibt sich im Assembler-Listing

ein Maschinen code, der im Arbeitsspeicher ab Adresse C000 abgelegt ist. Der lauffähige Maschinencode

arbeitet dagegen im Orginal-Zielbereich 0000.

2.2.2 Listing

Im folgenden ist das Assemblerlisting des TEST-EPROM’s Version 1.0 dargestellt.

********************************************************

*

T E S T - E P R O M ( V l . O )

FÜR EINPLATINENCOMPUTER K00P 85.1

(C) DEZ. 1989, ROBERT KRENZ, 4716 OLFEN

*

*

*

*

********************************************************

PARALLEL-SCHNITTSTELLE

PIO EQU

PIOA

PIOB

PIOC

EQU

EQU

EQU

PIOST EQU

0E0

PIO+O

PIO+1

PIO+2

PIO+3

I/O-ADRESSE PARALLEL-I/O 8255

PARALLEL-I/O (KANAL A)

(KANAL B)

(KANAL C)

(STEUERKANAL)

»

TIMER

TIMER

EQU

TIMEO EQU

TIMEI EQU

TIME2 EQU

TIMEST EQU

>

040

TIMER+0

TIMER+1

TIMER+2

TIMER+3

CrDTPTTÜ CPürTTTCTÜT

T P u C i

I/O-ADRESSE TIMER8053

TIMERKANAL 0

TIMERKANAL 1

TIMERKANAL 2

STEUERKANAL

SER EQU

SERDAT EQU

SERCTR EQU

0B0

SER+0

SER+1

I/O-ADRESSE USART 8251

SER.-I/O-DATA (SENDER/EMPF.DATEN)

SER.I/O-CONTROL (BETRIEBSART,

KOMMANDO, STATUS)

;-- KONSTANTENDEFINITIONEN -------------

OFF EQU 0C000 ; OFFSET FÜR ASSEMBLER

PROGRAMMBEGIN ---- --------- ■---

2.2. ASSEM BLER-LISTING

0000

0000

0000 cooo

ORG OOOO+OFF

<------------------

<— TEST-EPROM

<-- PROGRAMM-ANFANG

<— BEI ADRESSE 0000

<-----------------cooo cooo cooo cooo cooo cooo 3E 8B i —~

1. TEST DER PARALLEL-AUSGABE (KANAL A) ----------

C002 D3 E3

C004

TEST: MVI A ,8B

OUT PIOST

C004 16 01 MVI D ,01

C006 01 97CD 0UT1: LXI B ,0CD97

C009 7A 0UT2: MOV A,D

; BETRIEBSARTENWORT:

; 1000 1011 (BETRIEBSART 0 FÜR A,B,C)

; A: AUSGABE, B UND C: EINGABE

; ANFANGSWERT FÜR AUSGABE: 0000 0001

; ZEITSCHLEIFE (CA. 1 S)

; AUSGABEWERT AN KANAL A AUSGEBEN

COOA D3 EO

COOC OB

OUT PIOA

DCX B

MOV A,B

ORA

C

; ZÄHLER DEKREMENTIEREN

COOD 78

COOE B1

COOF C2 0900

C012

C012 7A

C013 07

C014 57

C015 D2 0600

C018

C018

JNZ 0 U T 2 - 0 F F

MOV A,D

RLC

MOV D ,A

JNC OUT1-OFF

AUSGABEWERT UM 1 NACH LINKS

ROTIEREN

UND IN D ZWISCHENSPEICHERN

INSGESAMT 8-MAL AUSGEBEN

C018

C018

»

2. TEST DES EINGABE-KANALS

C

----------------

C018

C024

C024

DB E2

C01A FE 80

C01C CA 2400

COIF

D3 EO

C021

C3 1800

INTST: IN PIOC

CPI 80

JZ RAMTST-OFF

OUT PIOA

JMP INST-OFF

:; EINGABEWERT VON KANAL C HOLEN

;; WENN EINGABE 80, DANN RAM-TEST

;; AUSGABE ZUM KANAL A

> ”

3. RAM-TEST

C024

C024

C024 3E 00

C026 D3 EO

C028

RAMTST: MVI A,00

OIT PIOA

;; AUSGABE AUSSCHALTEN

C028 DB E2

C02A 4F

C02B 06 80

C02D 05

C02E C2 2D00

C031 DB E2

C033 B9

C034 C2 2400

C037 E6 80

C039 CA 9200

C03C

C03C DB E2

C03E E6 7F

IN PIOC

MOV C ,A

MVI B ,80

PRELL: DCR B

JNZ PRELL-OFF

IN PIOC

CMP C

JNZ RAMTST

ANI 80

JZ SERTST-OFF

IN PIOC

ANI 7F #

EINGABE ABFRAGEN, ENTPRELLUNG

EINGABEWERT ZWISCHENSPEICHERN

ENTPRELL-ZEITSCHLEIFE

NOCHMALS EINGABE LESEN

UND VERGLEICHEN

WENN UNGLEICH, NOCHMALS ABFRAGEN

B7 UNGLEICH 0, DANN TEST DES TIMERS

UND DER SERIELLEN SCHNITTSTELLE

; EINGABE ABFRAGEN

; B7 AUSMASKIEREN

• :

2.2. ASSEM BLER-LISTING

C040 21 0000

C043

FE 01

C045

CA 6000

C048

C048 26 40

C04A FE 02

C04C CA 6000

C04F

C04F 26 80

C051 FE 04

C053 CA 6000

C056

C056 26 CO

C058

FE 08

C05A 6000

C05D C3 2400

C060

C060 16 FF

C062

01 0040

C065

C065 5E

C066

3E 55

C068 77

C069 BE

C06A CA 6F00

C06D 16 80

C06F 2F

C070 77

C071 BE

C072 CA 7700

C075 16 80

C077 73

C078

C078 7A

C079 D3 EO

C07B

C07B 23

C07C OB

C07D 78

C07E Bl

C07F

C2 6500

C0B2

C0B2 7A

C083 FE FF

C085 C2 8900

C088 F9

C089

C089 OB

C08A 78

C08B Bl

C08C C2 8900

C08F

C08F

C3 2400

C092

WRAM:

LXI H,0000

CPI 01

JZ WRAM-OFF

MVI H,40

CPI 02

JZ WRAM-OFF

MVI H,80

CPI 04

JZ WRAM-OFF

MVI H,0C0

CPI 08

JZ WRAM-OFF

JMP RAMTST-OFF

MVI D,OFF

LXI B,04000

TSTNXT:: MOV E,M

MVI A ,055

MOV M,A

OKI:

0K2:

CMP B

JZ 0K1-0FF

MVI D ,80

CMA

MOV M,A

CMP M

JZ 0K2-0FF

MVI D ,80

MOV M,E

MOV A,D

OUT PIOA

INX H

DCX B

MOV A,B

ORA C

JNZ TSTNXT-OFF

MOV A,D

CPI OFF

JNZ ZEITR-OFF

SPHL

ZEITR: DCX B

MOV A,B

ORA C

JNZ ZEITR-OFF

JMP RAMTST-OFF

; 01 — > TESTE AB ADRESSE 0000

; 02 — > TESTE AB ADRESSE 4000

; 04 — > TESTE AB ADRESSE 8000

; 08 — > TESTE AB ADRESSE C000

OK-AUSGABE: 1111 1111

SPEICHERBLOCK-LÄNGE = 16 K

ZEICHEN AUS SPEICHER IN E SPEICHERN

0 1 0 1 0 1 0 1

IN SPEICHER SCHREIBEN

IST DRIN ?

JA: DANN WEITER

NEIN: ERROR-AUSGABE: 1000 0000

1 0 1 0 1 0 1 0

IN SPEICHER SCHREIBEN

IST DRIN ?

JA: DANN WEITER

NEIN: ERROR-AUSGABE: 1000 0000

ALTEN WERT WIEDER IN SPEICHER ZURÜCK

AUSGABE (OK ODER ERROR)

; NÄCHSTEN SPEICHERPLATZ

;

;

SCHON 16 K GETESTET ?

NEIN: DANN TESTE NÄCHSTE ADRESSE

; STACK-POINTER AUF RAM-TOP SETZEN,

; WENN RAM OK

; ZEITVERZÖGERUNG FÜR LETZTE AUSGABE

15

2.2. ASSEM BLER-LISTING

C092

;-- 4. TEST DES TIMERS UND DER SERIELLEN SCHNITTSTELLE

C092

C092 CD 1F01

SERTST: CALL INITS-OFF

; INITIALISIERUNG SERIELLE SCHNITTST.

C095

C095 DB E2 SERT1: IN PIOC

; ABFRAGE: WAS SOLL GETESTET WERDEN ?

C097

C097 FE 01

C099

C09C

CC AEOO

CPI 01

; 01 — > TESTE TIMER-DEKODIERUNG

CZ TIMEDEK-OFF ; (KANAL 0 = 154 KHZ)

C09C

C09E

C0A1

FE 02

CC B800

CPI 02

CZ BLDOUT-OFF

; 02 — > TESTE BILDSCHIRMAUSGABE

CO AI

C0A3

C0A6

FE 04

CC 1401

CPI 04

CZ TAST-OFF

; 04 — > TESTE TASTATUR MIT BILDSCHIRM

C0A6

C0A8

FE 08

CA 0000

CPI 08

JZ TEST-OFF

; 08 — > GESAMTEN TEST VON VORN

COAB

COAB C3 9500

COAE

JMP SERT1-0FF ; SONST — > "WAS SOLL ICH TUN ?"

COAE

COAE

COAE

COAE 3E 16

COBO

D3 43

C0B2

COB 2

C0B2

3E OD

C0B4 D3 40

C0B6 AF

;-- TESTE TIMER-DEKODIERUNG

TIMDEK: MVI A,16

OUT TIMEST

------------------

TIMER 0 INITIALISIEREN

STEUERWORT: 00 01 Oll 0

(KANAL 0, NUR L-BYTE LADEN, MODE 3

BINÄR-ZÄHLER)

L-BYTE = 13 — > OUTO = 154 KHZ MVI A, OD

OUT TIMEO

XRA A

RET

; RETURN MIT A = 00

C0B7 C9

C0B8

C0B8

C0B8 ;-- BILDSCHIRMAUSGABE

C0B8

C0B8 21 C500 BLDOUT: LXI H,TXTOUT-OFF TEXTZEIGER AUF TEXTANFANG

COBB 7E

COBC B7

COBD

C8

COBE CD 3B01

NXTOUT: MOV A,M

ORA A

RZ

TESTZEICHEN HOLEN

COC1 23

C0C2 C3 BBOO

CALL SEROUT-OFF

INX H

JMP NXTOUT-OFF

C0C5

C0C5 0D0A5445

TXTOUT: DB OD,0A TERMINAL-TESTOD,OA

WENN ENDE-ZEICHEN

DANN RETURN

ZEICHEN ZUM TERMINAL

TEXTZEIGER ERHÖHEN

UND NÄCHSTES ZEICHEN HOLEN

C0C9 524D494E

COCD 414C2D54

COD1

4553543A

CODS ODOA

C0D7

20544845

CODB 20515549

CODF 434B2042

C0E3 524F574E

C0E7 20464F59

COEB

204A554D

DB ' THE QUICK BROUN FOX JUMPED OVER THE LAZY DOGS,»

16

2.2. ASSEM BLER-LISTING

COEF 50454420

C0F3 4F564552

C0F7 20544845

COFB 204C415A

COFF 5920444F

C103

47532C

C106 20303132

ClOA 33343536

ClOE 3738390D

C112 OAOO

C114

C114

C114 DB B1

C116 E6 02

C118 C8

C119

C119 DB BO

C U B CD 3B01

C U E C9

C11F

«

TAST:

:

DB » 01234567891,0D,0A,0

TASTATUR ABFRAGEN UND BILDSCHIRMAUSGABE

IN SERCTR

ANI 02

RZ

IN SERDAT

CALL SEROUT-OFF

RET

.

; STATUS LESEN

; RXRDY ?

:

; NEIN: DANN RETURN

1

; JA: DANN ZEICHEN LESEN

;

UND ZUM TERMINAL AUSGEBEN

C11F

Cl IF

C11F

C11F

C11F

C11F

C121

C123

C123

3E 16

D3 43

>

>

UNTERPROGRAMME FÜR SERIELLE SCHNITTSTELLE

TIMER UND SERIELLE SCHNITTSTELLE INITIALISIEREN

INITS: MVI A ,16

OUT TIMEST

TIMER 0 INITIALISIEREN

STEUERWORT 00 01 Oll 0

(KANAL 0, NUR L-BYTE LADEN, MODE 3

BINÄR-ZÄHLER)

L-BYTE = 13 — > OUTO = 154 KHZ C123 3E OD

C125 D3 40

MVI A,OD

OUT TIMEO

C127

C127

C128

C12A

AF

D3 B1

D3 B1

XRA A

OUT SERCTR

OUT SERCTR

OUT SERCTR C12C D3 B1

C12E

C12E

C130

3E 40

D3 B1

MVI A ,40

OUT SERCTR

;; UMSCHALTEN AUF BETRIEBSARTENREGISTER

C132 3E CE

C134

C136

C138

D3 B1

3E 37

D3 B1

MVI A ,OCE

OUT SERCTR

MVI A ,37

OUT SERCTR

BETRIEBSARTENWORT: 11 XO 11 10

2 STOPBITS, NO PARITY, 8 BIT, DIV 16

KOMMANDOWORT: 01 1 1 0 111

STANDARD, RTS, ERROR-RESET, NORMAL,

C13A

C13A C9

C13B

RET

RECEIVER, DTR, TRANSMITTER

RETURN

C13B

C13B

*

SERIELLE AUSGABE ZUM BILDSCHIRM ----- -----

C13B

\

C13B

C13C

F5

DB B1

SEROUT: PUSH PSW

STATO: IN SERCTR

C13E E6 01

C143 FI

ANI 01

C140

CA 3C01

■ . ■

POP PSW

; AUSGABEWERT RETTEN

;

‘ > •" <

SATUS ABFRAGEN (TXRDY)

WARTE BIS TXRDY = 1

AUSGABEWERT ZURÜCK

17

2.2. ASSEM BLER-LISTING

C144 D3 BO

C146 C9

C147

C147

C147

ZZZ:

OUT SERDAT

RET

; UND AUSGEBEN

; RETURN

; ENDE-LABEL

K a p itel 3

Tabellen und Skizzen

3.1 Schaltun gsau fb au

3.1.1 Bauteilliste

I n te g r ie r te S ch a ltu n g en

Ul EPROM

U2 EPROM

27128

27128

51256

U3

U4

RAM

Adreßlatch 74HCT573

U5

CPU 8085-4^ *,■

U

6

PIO

U7

Timer

82C55A

8253

U

8

Monoflop

U9 Pegelumsetzer MAX232

7

74LS122 '

U10 . Decoder

U li USART

74LS138

8251P

W id e r stä n d e

R IA ...R IF Widerstand

6

* 4,7 kQ

R

2

, R3

R9, RIO

Widerstand 2 * 4,7 kn

R4, R5, R7 Widerstand

3 * 2,7 kD

R

6

Widerstand

1

*

1

kfi

R

8

Widerstand 1 * 47 kn

Widerstand

2

*

10

kn

K o n d e n sa to r e n

CI, C

2

, C3 Keramik

3 * 10 nF

C4, C l l , C12

Keramik 3 * 100 nF

C

C

6

8

C5, C9

Keramik

1 * 27 pF

Keramik

1 * 470 nF

Tantal 2 * 4,7

(iF

C7, CIO, C13, C14 Tantal 4 * 22

nF

3.1. SCHALTUNGSAUFBAU

D io d e n

D l, D2, D3, D4, D5

D

6

D7

Germanium oder Schottky

Silizium 1N4148

Silizium 1N4007

~ - 0 f

-2X

' ^

T

-2

Q uarze

QZl Quarz 4 MHz

IC -S o ck el

1 * 14-polig

- {i f

2 * 16-polig

1 * 24-polig 4 * 28-polig

A ,95

V erb in d u n g selem en te

y

1

*

2

Ö-polig

2 * 40-polig

XI Anschluß-Klemmleiste 2-polig $$

X2 Pfostenleiste 2 * 8 —

X3 Pfostenleiste 2 * 8 —

X4 Pfostenleiste 2 *

8

x

X

6

Pfostenleiste 2 *

5x

X7 Pfostenleiste 2 * 4 —

X

8

SUB-D-Steckerleiste, einlötbar, 90°-gewinkelt 9-polig

X9

Pfostenleiste 1 * 5 - , j r

X10 Pfostenleiste 2 * 1 ~

X I I

Pfostenleiste 2 * 3 X

X12

Pfostenleiste 2 * 1 . -

X13

Pfostenleiste 2 * 13 X

X14

Pfostenleiste 2 * 7 X

X15 Pfostenleiste 2 * 2 -

20

LLU-ffll 'UXU1LL LUiUiX

U * - * t o -

_______ ffH tf

S I I SI II |||i *«

| I i »S ?«i

i m

a

--------------------------------- T~~ I

i

■ I

i

W l

* ?* y7

S*SS:S<«tS|> m i

SR

IS

i i 2*

*”

m m * .

r

,

4JJ4J

fiP

2

J*««S

2

im

*8

SR IS

LLLLLu/

H 1»*

2 i i*

t \r

i

r t

a r i r r * * V s

aooooooa x Q

t

P J

IlSSlIlUi»

iiii

8 2

SSS

8

RS SR

IS

l

U B l d ^ B ^ D S

nvajnvsDNnxivHDS

Z T C

<♦

«3

«1

2

0

cc >

J2-

±

19

17

16

.15

J

2

_

\

S

\

\

\

:n -2 8 t - r f f e

IB

esp

X3

y

/ ucc

A

-

12

.

2L

/

/

'

25

' a

4

7

/

_

5

i

7

B

?

-ifl

U2 tWH

VNP

UAP

UMS wee

PC m

2

WO

A

8

M

A

7

cc cc

*5

M

A

3

62

61

60

flEtl-28

D?

04

06

04

03

02

01

00

a J

" 1

-.11

.

r

\

2$

\

13

12

\

11

s<-

r

U9 a»

VCC

PC

«J I_Xa_

I T 1-

= 4 «

-20L

/

/

/

2 6

1

?

/

/

6

' I

?

Ull

cue

«SET

*

1

in

TXO

BXÜ

CT$v

_a________ _ _12

23

o n

-iz

----------------------------

B

2

____

L.

_________

10

_ oriK

OSQ\

-

l

T -

<-m m<-

2

<-C

2

>

02

MAX232 u-

X I5

00 bymjct

01

B)«

0

y

02

TÄIOY

03 t x o p t y

04

05

04

07

TXC axe

8251

16 A

Microcomputer Intel 8085

CO to cr> n s r

E-

<Th

*E

ST

3

■:'V, t o

3.1. SCHALTUNGSAUFBAU

3.1.3 Bestückungsplan

■H »oN

H Eolh«

» y *

■H 'olh«

■ d ü j « o

3.2. ÜBERSICHT SPEICHERBAUSTEINE

3.2 Ü b ersich t S peich erb au stein e

23

P in b e le g u n g v o n u n tersc h ied lich en S p eich ern

Pin

1

2

3(1)

4(2)

5(3)

6(4)

24(22)

25(23)

28

A

B

Vpp Vpp

A12

A7

A

6

A5

A4

A9

A

8

A12

A7

A

6

A5

A4

C

NC

A12

A I

A6

A5

A4

D E

RFS

Vpp

A12 A12

A7 A7

A

6

A5

A4

A

26(24) A13

27

A13 CE2 CS NC

A14 PGM

R/VV VVE

PGM

Vcc

A9

A

8

Vcc

A9

A

8

Vcc

A9

A

8

Vcc

A9

A

8

Vcc

6

A5

A4

F

A l

A

A5

A4

7(5)

8

(

6

)

9(7)

16(14)

A3

A2

A l

D4

A3

A2

A l

D4

A3

A2

Al

D4

A3

A2

A l

D4

A3

A2

A l

D4

A3

A2

A l

D4

A3

A2

A l

D4

A3

A2

A l

D4

A3

A2

A l

D4

A3

A2

A l

D4

A3

A2

A l

A3

A2

A l

10

11(9)

12

(

(

8

)

10

)

A0

DO

D l

A0

DO

D l

A0

DO

D l

A0

DO

AO

DO

AO

DO

AO

DO

AO

DO

AO

DO

AO

DO

AO

DO

D l

AO

DO

13(11) D2

D2 D2 D2 D2 D2 D2 D2 D2 D2 D2

D2

14(12)

GND GND GND GND GND GND GND GND GND GND GND GND

15(13) D3 D3 D3

D l

D3

D l

D3

D l

D3

D l

D3

D l

D3

D l

D3

D l

D3

D3

D l

D3

D4 D4

17(15)

18(16)

D5

D

6

19(17)

D7

20(18)

CE

21(19)

A10

22

(

20

) OE

23(21) A l l

D5

D

6

D7

CE

A10

OE

A l l

D5

D

6

D7

CE

A10

OE

A l l

D5

D

6

D7

CE

A10

OE

A l l

D5

D

6

D7

CE

A10

OE

A ll

D5

D

6

D7

CE

A10

OE

A ll

D5

D

6

D7

CE

A10

OE

NC

D5

D

6

D7

CE

A10

OE

Vpp

D5

D

6

D7

CE

A10

OE

D5

D

6

D7

CE

A10

OE

VVE WE

D5

D

6

D7

CE

A10

OE

Upp

D5

D

6

D7

CE

L

OE

WE

A9

A

8

Vcc

6

G

RFS

NC

A l

A

A9

A

8

6

A5

A4

CS

WE

Vcc

H

A l

A

6

A5

A4

A9

A

8

Vcc j

A7

A

6

A5

A4

A9

A

8

Vcc

A i

A l

A5

A4

A9

A

8

Vcc

6

K

A l

A

A5

A4

A9

A

8

Vcc

6

L

A7

A

6

A5

A4

A9

A

8

Vcc

A EPROM 27256

B

EPROM 27128

C CRAM 5564

D PRAM 4864

E

EPROM 2764

F EPROM 2732

G PRAM 4816

H EEPROM 2816

I SRAM 4802

J CRAM 6116

K EPROM 2716

L SRAM 4118

3.3. 8085-BEFEHLSSATZ

3.3 8 0 8 5 -B efeh lssa tz

D a te n tr a n s p o r t-B e fe h le

Mnemonik Code TZ By.

MZ Funktion des Befehls NZPCH

MOV rl,r2

MOV M,r

MOV r,M

MVI r,n

MVI M,n

LXI B,m

LXI D,m

LXI H,m

LXI SP,m

SPHL

STAX B

STAX D

LDAX B

LDAX D

STA m

LDA m

SHLD m

LHLD m

XCHG

XTHL

2A

EB

E3

31

F9

02

12

36

01

11

21

0A

1A

32

3 A

22

10

10

10

6

7

10

10

7

7

4

7

7

13

13

16

7

7

16

4

16

3

3

3

1

1

1

1

3

3

1

3

1

1

1

1

2

2

3

3

1

1

2

( r l M r

(M)<—(r)

2

(r)«-(M)

2

(r)<—n

3 (M)<— n

2

)

3 (B/C)<—m

3 (D/E)<—m

3

(H/L)<—m

3 (SP)«—m

1

(S P M H /L )

2

( b

/ c m a

)

2

(D/E)«—(A)

2

(A )«-(B /C )

2

(A)«—(D /E )

4 (m )—(A)

4 (A)<—(m)

5

(m)«-(E)

(m +

1

)«—(H)

5

( L ) * - H

(H)«—(m +1)

1

(H /L )*-(D /E )

5 (H/L)<—(S P + l/S P ) xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx

R e g iste r In k rem en t, D ek rem en t

Mnemonik Code TZ By.

MZ Funktion des Befehls

NZPCH

INR r

INR M

DCR r

DCR M

INX B

INX D

INX H

INX SP

DCX B

DCX D

DCX H

DCX SP

34

35

03

13

23

33

OB

1B

2B

3B

10

4

10

6

6

6

6

6

6

6

6

4

1

1

1

1

1

1

1

1

1

1

1

1

1

1

« H r

)+1

3 (M )-(M )+ 1

(r)«-(r)-l

3 ( M )-(M

)-1

1

( B / C M B / C

)+1

1

( D / E ) - ( D / E

)+1

1

(H /L )«-(H /L

)+1

1

(S P M S P )+ 1

1

(B/C)«—( B /Q - l

1

(D /E )—(D /E )-l

1

(H/L)«—(H /L )-l

1

(S P )- (S P )-!

???x?

???x?

???X?

???x?

XXXXX xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx

24

3.3. 8085-BEFEHLSSATZ

A r ith m e tik , L ogik, V ergleich

Mnemonik Code TZ

By.

MZ

Funktion des Befehls NZPCH

ADD r

ADD M

A DI n

ADC r

ADC M

ADC n

DAD B

DAD D

DAD H

DAD SP

SUB r

SUB M

SUI n

SBB r

SBB M

SBI n

ANA r

ANA M

ANI n

XRA r

XRA M

XRI n

ORA r

ORA M

ORI n

CMP r

CMP M

CPI n

F

86

C

6

8

E

CE

09

19

29

39

96

D

6

9E

DE

A

E

6

6

AE

EE

B

6

6

BE

FE

4

7

7

4

10

10

10

10

7

7

7

7

4

7

4

4

7

4

7

7

7

7

7

4

4

7

7

7

2

2

2

2

1

2

1

2

1

1

1

1

1

2

1

1

2

1

1

1

1

1

1

1

1

1

1

1

1 (A)«—(A)+(r)

2

(A )«-(A )+(M )

2 (A)<—(A)+n

1

(AM A)+(r)+C

2

(A)<—(A )+(M )+C

2

(A)<—(A )+n+C

3

(H /L)«-(H L)+(BC )

3 (H /L)<-(HL)+(DE)

3 (H/L)«—(H/L)*2

3 (H/L)«—(HL)+(SP)

1

(A)<—(A)-(r)

2

(A)<—(A)-(M)

2

(A)<—(A)-n

1

(A)<—(A)-(r)-C

2

(A)«—(A)-(M)-C

2

(A)<—(A)-n-C

1

(A)«-(A)AND(r)

.2

(A)<—(A)AND(M)

2

(A)*—(A)AND n

1

(A)*—(A)XOR(r)

2

(A)<—(A)XOR(M)

2

(A )—(A)XOR n

1

(A)<—(A)OR(r)

2

(A )-(A )O R (M )

2

(A)<—(A)OR n

1

(A) - (r)

2

( A ) - ( M )

2

(A) - n

?????

?????

?????

?????

?????

?????

?????

?????

???01

???01

???01

???00

???00

???00

???00

???00

???00

?????

?????

?????

xxx?x

xxx?x

xxx?x

xxx?x

?????

?????

?????

?????

A k k u ro tie ren , b eein flu ssen , C arry se tz e n

Mnemonik Code TZ

By.

MZ Funktion des Befehls NZPCH

RLC

RRC

RAL

RAR

CMA

DAA

STC

CMC

07

OF

17

IF

2F

27

37

3F

4

4

4

4

4

4

4

4 l l l l

1

1

1

Links schieben

1

1

Rechts schieben

1

Links schieben

Rechts schieben xxx?x

xxx?x

xxx?x

xxx?x

1

(A)<—Not (A) xxxxx

1

(A) in BCD wandeln

?????

1 1

( C ) - l

1

fl

1

(C)<—Not (C) x x x lx xxx?x

3.3. 8085-BEFEHLSSATZ

JMP m

PCHL

JC m

JNC m

JZ m

JNZ m

JP m

JM m

JPE m

JPO m

S p r u n g b efe h le

Mnemonik

Code

C3

E9

10

6

DA 10/7

D2

10/7

CA 10/7

C2

F2

10/7

10/7

FA 10/7

EA 10/7

E2 10/7

TZ

By.

MZ Funktion des Befehls

3

1

3 (PC)<—m

1

(P C M H /L )

3 3/2

(C )= l

3

3/2 (C)=0 wenn erfüllt

3

3/2

(Z )= l (PC)«—m

3

3/2

(Z)=0

3 3/2

(N )=0 nicht erfüllt

3

3/2 (N )= l (PC )—(PC )+3

3 3/2

(P ) = l

3 3/2 (P)=0

NZPCH xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx

U n terp ro g ra m m a u fru fe

Mnemonik Code

CALL m

RST n

CC m

CNC m

CZ m

CNZ m

CP m

CM m

CPE m

CPO m

CD

TZ

By.

MZ Funktion des Befehls

18

12

DC 18/9

D4 18/9

CC

C4

18/9

18/9

F4

18/9

FC 18/9

EC 18/9

E4 18/9

3

1

5

(SP-l)(SP-2)<—(PC +3)

(PC)«—m (SP)«-(SP)-2

3 (SP-l)(SP-2)«—(P C +

1

)

(PC)<—n

*8

(SP)«—(SP)-2

3 5/2 (C )= l

3 5/2 (C)=0 wenn erfüllt

3 5/2 (Z )= l s. CALL

3 5/2

(Z)=o

3

5/2 (N )=0 nicht erfüllt

3 5/2 (N )= l (PC)—(PC )+3

3 5/2 (P ) = l

3

5/2 (P )=0

NZPCH xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx

U n ter p r o g ra m m -R ü ck sp rü n g e

Mnemonik Code

RET

RC m

RNC m

RZ m

RNZ m

RP m

RM m

RPE m

RPO m

TZ

By-

MZ Funktion des Befehls

C9

10

D

8 12/6

DO

12/6

C

8 12/6

CO

F0

12/6

12/6

F

8 12/6

E

8 12/6

E0

12/6

NZPCH

1

3 (P C )-(S P + 1 ) (SP)j

1

3/1

(C )= l

-+ 2

xxxxx xxxxx

1

3/1 (C)=0 wenn erfüllt xxxxx

1

3/1 (Z )= l s. RET

1

3/1

(z)=o

1

3/1 (N )=0 nicht erfüllt

1

3/1

(N )= l (P C )-(P C )+ 1

1

3/1

(P ) = l

1

3/1 (P )= 0 xxxxx xxxxx xxxxx xxxxx xxxxx xxxxx

3.3. 8085-BEFEHLSSATZ

E in- A u s g a b e , U n terb rech . S teu er u n g

Mnemonik Code TZ By. MZ Funktion des Befehls NZPCH

IN n

OUT n

EI

DI

DB

D3

F

8

F3

S ta p e lste u e r u n g

10

10

4

4

1

1

2

2

3 (A)<— (Port n)

3 (Port n)<— (A)

1

(INTE

)«—1

1

(INTE)«—0 xxxxx xxxxx xxxxx xxxxx

Mnemonik

PUSH PSW

PUSH B

PUSH D

PUSH H

POP PSW

POP B

POP D

POP H

F5

C5

D5

E5

F l

CI

D l

El

Code TZ By.

MZ Funktion des Befehls

12

12

12

12

10

10

10

10

1

1

1

1

1

1

1

1

3 Akku und Flags auf (SP)

3 B und C-Reg. auf (SP)

3 D und E-Reg. auf (SP)

3 H und L-Reg. auf (SP)

3 Akku und Flags vom (SP)

3 B und C-Reg. vom (SP)

3 D und E-Reg. vom (SP)

3 H und L-Reg. vom (SP)

NZPCH xxxxx xxxxx xxxxx xxxxx

?????

xxxxx xxxxx xxxxx

S o n stig e 8 0 8 5 -B efeh le

Mnemonik Code TZ

By.

MZ Funktion des Befehls

HLT

NOP

RIM

SIM

76

00

20

30

4

4

5

4

1

1

1

1

1

1

(P C M P C )+ 1

(PC)<—(PC )-fl

NZPCH xxxxx xxxxx

1 Liest vom ser. Eingang (A) xxxxx

1

Schreibt auf ser. Ausgang xxxxx

27

3.4. UNTERPROG RAM M E

3.4 U n terp rogram m e

E in -/A u s g a b e — U n terp ro g ra m m e

- RCHAR 0043

(0AE0)

Ein Zeichen einiesen (SERIN)

CALL RCHAR

(A) = Zeichen

- WCHAR

0052

(0BB6)

Ein Zeichen auf Bildschirm ausgeben (SEROUT)

MVI A,Zeichen

CALL WCHAR

- WCHARI

- WA HEX

0055

(0BF7)

Ein Zeichen nach “CALL” ausgeben

CALL WCHARI

DB Zeichen

0058

(0B6F)

8

-Bit-Wert (A) als 2 Hex-Zeichen ausgeben

- WHLHEX

005 B

(0C1C)

16-Bit-Wert (HL) als 4 Hex ausgeben

- WABIN

- WA DEZ

- WAFOR

005E

(0B04)

8

-Bit-Wert (A) binär ausgeben

0061

(0B19)

8

-Bit-Wert (A) dezimal ausgeben

(mit Unterdrückung der führenden Nullen)

0064

(0B4F)

8

-Bit-Wert entsprechend Format ausgeben

MVI A.Wert

MVI C,Format (0=ASCII,1=BIN,2=DEZ,3=HEX)

CALL WAFOR

- WBLANK 0067

(0B8E)

Ein Leerzeichen ausgeben

- WBUF

- WBUFI

- WCRLF

- WCRLFI

006A

(0BA1)

Puffer

(HL) ausgeben

Textpuffer=”TEXT” ,0 (0 als Endezeichen)

(HL) zeigt auf Wert nach dem Endezeichen

LXI H,Anfangsadresse des Textpuffer

CALL WBUF

006D

(0BB0)

Textpuffer nach “CALL” ausgeben

CALL WBUFI

DB ”TEXT” ,0

0070

(0C01)

Neue Zeile ( CR+LF ausgeben )

0073

(0C13)

Text nach “CALL” in neue Zeile ausgeben

( CR-hLF und Text nach “CALL” ausgeben )

CALL WCRLFI

DB ”TEXT”,0

3.4

.

UNTERPROG RAM M E

E ingabpufF erung

- BCLR OCAA

EingabepufFer löschen

CALL BCLR

- BGETF OCCD

Erstes Zeichen aus Eingabe-Puffer holen

CALL BGETF

JC PufferLeer

JNC Zeichen in (A)

- BPUT 0CE9

Zeichen in Eingabepuffer ablegen

MVI A,Zeichen

CALL BPUT

JC Puffer Voll

JNC noch Plätze im Puffer frei

- BREAD ODOA

Zeichen einiesen, kontrollieren und puffern

RUBOUT

CR od. SPACE

+ od. -

ESC

Kon. Zeichen

zuletzt eingegebenes Zeichen löschen

Eingabe normal beenden

Eingabe beenden wenn BCKFLG=1

Eingabe abbrechen

werden ignoriert

MVI B, maximale Zahl der Zeichen

MVI C, Format (0=ASCII,1=BIN,2=DEZ,3=HEX)

CALL BREAD

JC ABBRUCH

JNC CR,BLANK(od. - od. + .falls BCKFLG=1)

(A) = Abschlusszeichen

- BGETL OCDB

Letztes Zeichen aus Eingabepuffer holen

(sonst siehe BGETF)

29

.4.

U N TERPROG RAM M E

Character-

Test und -manipulationen

- CHTST

0E84

Testen, ob ASCII-Zeichen angegebenem Format

entspricht

MVI A,ASCII-Zeichen

MVI C,Typ (0=ASCII,1=BIN,2=DEZ,3=HEX)

CALL CHTST Carry=l: Falsch ; C=0: O.K.

- CMP2

- GROSS

0EA8

Vergleiche (DE) mit (HL) ; 16 Bit-Vergleich

LXI D,WERT1

LXI H.WERT2

CALL CMP2

Carry= 1: (HL) > (DE)

0EE9

Kleine Buchstaben in GROSSE (A) wandeln

LDA ASCII-Zeichen

CALL GROSS

- HEXASC

0EF2 HEX-Zahl in ASCII wandeln

- SUB2

1039

Zwei 16-Bit-Werte subtrahieren

(HL) = (HL) - (DE)

3.4. UNTERPROG RAM M E

Hole Tastatureingaben in speziellem Format

- HADR

- HDATA

08DF

Hole Adresse max. 4 Zeichen Hexadezimal

LHLD Altwert

CALL HADR

(HL) = Altwert / Neuwert

(A) = Abschlusszeichen (CR,Space,ETX)

Carry= 1 Altwert ; 0 Neuwert

0941 Hole 8-Bit Datenbyte

MVI C,Format (0=ASCII,1=BIN,2=DEZ,3=HEX)

LXI H,Adresse Altwert / Neuwert

CALL HDATA

(D) = Neuer bzw. Alter Datenwert

- HDATAD 096E Hole Datenbyte mit Default

CALL HDATAD

(D) = Neuer bzw. Alter Datenwert

- HEINAUS 097B Hole “EIN / AUS”

LXI H,EIN/AUS-Adresse

CALL HEINAUS

(B) = Alter bzw. Neuer EIN(l)/AUS(0)-Zustand

gleicher Wert unter Adresse in (HL)

- HFORMD 09C5 Hole Zahlenformat

(mit Ausdruck “FORMAT=ALTWERT” )

CALL HFORMD

FORMAT=Neues bzw. Altes Format

Variable FORMAT in Adresse FCAlh

- HJANEIN 0A0C

Hole “JA / NEIN”

CALL HJANEIN

JZ JA

- HPORTD 0A2C Hole Ein bzw. Ausgabe-Port

Default wird zuvor ausgedruckt

Eingabe: Port-Adresse ; + / -

CALL HPORTD

Port= Alte bzw. Neue Portadresse

- HSTART 0A6D

Hole Startadresse (4 Hex-Zeichen)

LHLD Alter Wert

CALL HSTART

(HL) = Neu bzw. Altwert

-H ST O PD 0A9C

Hole Stopadresse, mit Default

LHLD Altwert

CALL HSTOPD

- WAASC OAEE

8-Bit-Wert in ASCII ausgeben

MVI A,8-Bit Wert

CALL WAASC

z.B. .X , .Z , 10 , B4

31

3.5.

STEU ERBEFEHLE DES EDITORS

3.5 S teu erb efeh le des E ditors

Ctrl 4 N

Ctrl 4 D

Neustart

Drucker-Menu

----- V e r a r b e itu n g ------

Ctrl +

Ctrl + AJ

----- Z eich en e d it ie r e n -----

Ctrl 4

R

Ctrl + DEL

Ctrl 4 E

Zeichen radieren

Zeichen links löschen

Einfügen Ein/Aus

32

Speichern/Laden

Assemblieren

----- Z eile e d i t i e r e n -----

Ctrl + Z_ 4 _L

Ctrl

+

z_

+

_E

Ctrl

+ z_ +

A_

Zeile löschen

Zeile einfügen

Zeile anhängen

----- C u rso r-S teu eru n g -----

Ctrl -f

Ctrl -f

Ctrl +

Ctrl 4

Ctrl 4-

c

4

0

An oberen Bildrand

c

4-

u

An unteren Bildrand

c

4

c

h

An linken Bildrand

An rechten Zeilenrand

w

Auf nächstes Wort

----- S e ite n b l ä t t e r n -----

Ctrl 4

u

Ctrl 4 0

Ctrl 4

c_ 4 A

Ctrl 4

c

4

E

Ctrl 4 T

Seite unten

Seite oben

Cursor zum Textanfang

Cursor zum Textende

Tabulator

— B lock B efeh le —

Ctrl 4

T

4

M 1 Block markieren

B.-Mark. rücksetzen

Ctrl 4

J3_

4

R

Ctrl 4

J3_

4

_F_

B.-Mark. finden

Ctrl 4 B 4

_L_

Block löschen

Ctrl 4

J3_

4

K_

Block kopieren

Ctrl 4

Ctrl 4

B 4

Block verschieben

4

V

ii

Block speichern

Ctrl 4

Ctrl 4

Ctrl 4

----- F in d e / E r s e t z e -----

4

4

4

£

F_

Setze Suchwort

Finde Suchwort

Ersetze Suchwort

Ins

Del

Posl

End

PgUp

PgDn

B elegu n g der sp eziellen M F 2 -S o n d erta sten

=

=

Ctrl 4 E

Ctrl 4

_R

=

Ctrl 4 C

=

Ctrl

+

C

=

Ctrl 4

0

-

Ctrl 4

u

Shift 4 Tab

Ctrl 4 Home

Ctrl 4 End

=

Ctrl 4 PgUp

=

Ctrl 4 PgDn

=

Ctrl 4

Ctrl 4

Ctrl 4

Ctrl 4

Ctrl 4

w c

4

0_

c

4

u c

4 A

c

4 E

Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertisement