R O B O T R O N

            Mikrorechnerbausatz  Z 1 0 1 3

                    Anlagenteil

            VEB Robotron - Elektronik Riesa



Mikrorechnerbausatz  Z 1 0 1 3

Anlagen:
--------

 1 Befehlssatz U 880
 2 Speicherbereichsaufteilung
 3 E/A Adressen
 4 Arbeitszellen des Monitors
 5 BASIC-Befehlsliste
 6 Steckverbinderbelegung
 7 Zeichensatz/ASCII-Code
 8 Bildschirmadressen
 9 Verwendete Schaltkreise
10 Zeitverhalten einiger CPU-Funktionen
11 Liste des Reassemblers fuer U 880-Befehle
12 Liste des BASIC-Interpreters
13 MC-Beispielprogramme
14 BASIC Beispielprogramme
15 Belegungsplan
16 Stromlaufplan


Anlage 1: Befehlssatz der CPU 880

8-Bit-Ladebefehle
 
ABCDEH L(HL)(BC)(DE)(nn)n
LD  A,.7F78797A7B7C7D7E0A1A3AXXXX3EXX
LD  B,.474041424344454606XX
LD  C,.4F48494A4B4C4D4E0EXX
LD  D,.575051525354555616XX
LD  E,.5F58595A5B5C5D5E1EXX
LD  H,.676061626364656626XX
LD  L,.6F68696A6B6C6D6E2EXX
LD (HL),.7770717273747536XX
LD (BC),.02
LD (DE),.12
LD (nn),.32XXXX
 ABCDEHL
LD ., (IX+d)DD7ExxDD46XXDD4EXXDD56XXDD5EXXDD66XXDD6EXX
LD ., (IY+d)FD7ExxFD46XXFD4EXXFD56XXFD5EXXFD66XXFD6EXX
LD (IX+d),.DD77XXDD70XXDD71XXDD72XXDD73XXDD74XXDD75XX
LD (IX+d),.FD77XXFD70XXFD71XXFD72XXFD73XXFD74XXFD75XX
LD (IX+d),nDD36ddnn
LD (IX+d),nFD36ddnn
SZHP/VNC
LD A,I ED57 **0 *0-
LD A,RED5F**0 *0-
LD I,AED47--- ---
LD R,AED4F--- ---



16-Bit-Ladebefehle
 
 BCDEHLSPIXIY
LD .., nn01XXXX11XXXX21XXXX31XXXXDD21XXXXFD21XXXX
LD ..,(nn)ED4BXXXXED5BXXX2AXXXXED7BXXXXDD2AXXXXFD2AXXXX
LD (nn),..ED43XXXXED53XXXX22XXXXED73XXXXDD22XXXXFD22XXXX
LD SP,..F9DDF9FDF9

 
BCDEHLAFIXIY
PUSH .. C5D5E5F5DDE5FDE5
POP ..C1D1E1F1DDE1FDE1

 
EX (SP),HLE3    EX DE,HLEB
EX (SP),IXDDE3    EXAF08
EX (SP),IYFDE3    EXXD9 (BC-BC' DE-DE' HL-HL')

Blocktansfer- und Suchbefehle
 
 S  Z  H P/V N  C 
LDIEDA0  - - 0 * 0 -LD (DE), (HL); INC HL; INC DE; DEC BC
LDIREDB0 - - 0 0 0 -wie LDI, wiederholen bis BC=0
LDDEDA8 - - 0 * 0 -LD (DE), (HL); DEC HL; DEC DE; DEC BC
LDDREDB8 - - 0 0 0 -wie LDD, wiederholen bis BC=0
CPIEDA1 * * * * 1 -LD A,(HL); INC HL, DEC BC
CPIREDB1 * * * * 1 -wie CPI, wiederholen bis BC=0 oder Zeichen gefunden
CPDEDA9 * * * * 1 -LD A,(HL); DEC HL, DEC BC
CPDREDB9 * * * * 1 -wie CPD, wiederholen bis BC=0 oder Zeichen gefunden



Sprungbefehle
 
ZNZCNCPEPCMP
JP..CAXXXXC2XXXXDAXXXXD2XXXXEAXXXXE2XXXXFAXXXXF2XXXX
CA..CCXXXXC4XXXXDCXXXXD4XXXXECXXXXE4XXXXFCXXXXF4XXXX
RE..C8C0D8D0E8E0F8F0
JR..28XX20XX38XX30XX
unbedingt(HL)(IX)(IY)
JMPC3XXXE9DDE9FDE9
CALLCDXXX
RETC9
JR18XX
RST000810 18202830 38
C7CFD7DF E7EFF7FF
DJNZ10XX DEC B; JRNZ e
RETIED4Dzurueck vom Interrupt
RETNED45zurueck vom nicht maskierbaren Interrupt

CPU-Steuerbefehle
 
 S  Z  H P/V N  C 
NOP00 - - - - - -Leerbefehl
HALT76 - - - - - -
CCF3F - - * - 0 *Komplementiere Carry-Flag
SCF37 - - 0 - 0 1Setze Carry Flag
EIFB - - - - - -Interrupts freigeben
DIF3 - - - - - -Interrupts sperren
IM 0ED46 - - - - - -Interrupt-Modus 0
IM 1ED56 - - - - - -Interrupt-Modus 1
IM 2ED5E - - - - - -Interrupt-Modus 2



Ein-/Ausgabebefehle
 
ABCDEHL SZHP/VNC
INED78ED40ED48ED50ED58ED60ED68 **0 * 0-
OUTED79ED41ED49ED51ED59ED61ED69 -- ---
      (Kanaladresse in C)
 
INFED70 Setzen des Flag Registers  *? * 0-
      (Kanaladresse in C)
 
SZHP/VNC
IN nDBXX--- - --Kanaladresse 'n'
OUT nD3XX--- ---Kanaladresse 'n'
INIEDA2?*? ?1-IN (HL),(C); INC HL; DEC B
INIREDB2 ?1? ?1-wie INI, wiederholen solange B<>0
INDEDAA?*? ?1-IN (HL),(C); DEC HL; DEC B
INDREDBA?1? ?1-wie IND, wiederholen solange B<>0
OUTIEDA3?*? ?1-OUT (C),(HL); INC HL; DEC B
OTIREDB3?1? ?1-wie OUTI, wiederholen solange B<>0
OUTDEDAB?*? ?1-OUT (C),(HL); DEC HL; DEC B
OTDREDBB?1? ?1-wie OUTD, wiederholen solange B<>0



8-Bit Arithmetische und Logische Befehle
 
BCDEHL(HL)An(IX+d)(IY+d)SZHP/VNC
ADD808182838485 8687C6XXDD86XXFD86XX *** *0*
ADC88898A8B8C8D 8E8FCEXXDD8EXXFD8EXX*** *0*
SUB909192939495 9697D6XXDD96XXFD96XX*** *1*
SBC98999A9B9C9D 9E9FDEXXDD9EXXFD9EXX*** *1*
ANDA0A1A2A3A4A5 A6A7E6CCDDA6XXFDA6XX**1 *00
XORA8A9AAABACAD AEAFEEXXDDAEXXFDAEXX**1 *00
ORB0B1B2B3B4B5 B6B7F6XXDDB6XXFDB6XX**1 *00
CMPB8B9BABBBCBD BEBFFEXXDDBEXXFDBEXX*** *1*
INC040C141C242C 343CDD34XXFD34XX*** *0-
DEC050D151D252D 353DDD35XXFD35XX*** *1-
SZHP/VNC
DAA27*** *-*BCD-Korrektur im A-Register
CPL2F--1 -1-Komplementiere A-Register (1er-Komplement)
NEGED44 *** *1*Komplementiere A-Register (2er-Komplement)



Rotations- und Schiebebefehle
 
BCDEHL(HL)A(IX+d)(IY+d)
RR CB18CB19CB1A CB1BCB1CCB1DCB1E CB1FDDCBXX1BFDCBXX1E
RL CB10CB11CB12CB13 CB14CB15CB16CB17 DDCBXX16FDCBXX16
RRCCB08CB09CB0ACB0BCB0CCB0DCB0ECB0FDDCBXX0EFDCBXX0E
RLCCB00CB01CB02CB03CB04CB05CB06CB07DDCBXX06FDCBXX06
SRACB28CB29CB2ACB2BCB2CCB2DCB2ECB2FDDCBXX2EFDCBXX2E
SLACB20CB21CB22CB23CB24CB25CB26CB27DDCBXX26FDCBXX36
SRLCB38CB39CB3ACB3BCB3CCB3DCB3ECB3FDDCBXX3EFDCBXX3E
SZHP/VNC
RR/RL**0 *0*Rotiere Reg rechts/links durch Carry
RRC/RLC**0 *0*Rotiere Reg rechts/links
SRA/SLA**0 *0*Shift Reg rechts/links arithmetisch
SRL**0 *0*Shift Reg rechts/links logisch
SZHP/VNC
RRCA0F--0 -0*Rotiere A-Register rechts
RLCA07--0 -0*Rotiere A-Register links
RRA1F--0 -0*Rotiere A-Register rechts durch Carry
RLA17--0 -0*Rotiere A-Register links durch Carry
RLD (HL)ED6F**0 *0-Rotiere Ziffer links zwischen A-Register und (HL)
RRD (HL)ED67**0 *0-Rotiere Ziffer rechts zwischen A-Register und (HL)



Einzelbitbefehle
 
BCDEHL(HL)A(IX+d)(IY+d)
BIT 0,.CB40CB41CB42CB43CB44CB45CB46CB47DDCBXX46FDCBXX46
BIT 1,.CB48CB49CB4ACB4BCB4CCB4DCB4ECB4FDDCBXX4EFDCBXX4E
BIT 2,.CB50CB51CB52CB53CB54CB55CB56CB57DDCBXX56FDCBXX56
BIT 3,.CB58CB59CB5A CB5BCB5CCB5DCB5E CB5FDDCBXX5EFDCBXX5E
BIT 4,.CB60CB61CB62CB63CB64CB65CB66CB67DDCBXX66FDCBXX66
BIT 5,.CB68CB69CB6ACB6BCB6CCB6DCB6ECB6FDDCBXX6EFDCBXX6E
BIT 6,.CB70CB71CB72CB73CB74CB75CB76CB77DDCBXX76FDCBXX76
BIT 7,.CB78CB79CB7ACB7BCB7CCB7DCB7ECB7FDDCBXX7EFDCBXX7E
RES 0,.CB80CB81CB82 CB83CB84CB85CB86 CB87DDCBXX86FDCBXX86
RES 1,.CB88CB89CB8A CB8BCB8CCB8DCB8E CB8FDDCBXX8EFDCBXX8E
RES 2,.CB90CB91CB92CB93CB94CB95CB96CB97DDCBXX96FDCBXX96
RES 3,.CB98CB99CB9ACB9BCB9CCB9DCB9ECB9FDDCBXX9EFDCBXX9E
RES 4,.CBA0CBA1CBA2CBA3CBA4CBA5CBA6CBA7DDCBXXA6FDCBXXA6
RES 5,.CBA8CBA9CBAACBABCBACCBADCBAECBAFDDCBXXAEFDCBXXAE
RES 6,.CBB0CBB1CBB2CBB3CBB4CBB5CBB6CBB7DDCBXXB6FDCBXXB6
RES 7,.CBB8CBB9CBBACBBBCBBCCBBDCBBECBBFDDCBXXBEFDCBXXBE
SET 0,.CBC0CBC1CBC2CBC3CBC4CBC5CBC6CBC7DDCBXXC6FDCBXXC6
SET 1,.CBC8CBC9CBCACBCBCBCCCBCDCBCECBCFDDCBXXCEFDCBXXCE
SET 2,.CBD0CBD1CBD2CBD3CBD4CBD5CBD6CBD7DDCBXXD6FDCBXXD6
SET 3,.CBD8CBD9CBDACBDBCBDCCBDDCBDECBDFDDCBXXDEFDCBXXDE
SET 4,.CBE0CBE1CBE2CBE3CBE4CBE5CBE6CBE7DDCBXXE6FDCBXXE6
SET 5,.CBE8CBE9CBEACBEBCBECCBEDCBEECBEFDDCBXXEEFDCBXXEE
SET 6,.CBF0CBF1CBF2CBF3CBF4CBF5CBF6CBF7DDCBXXF6FDCBXXF6
SET 7,.CBF8CBF9CBFACBFBCBFCCBFDCBFECBFFDDCBXXFEFDCBXXFE


Flagbeeinflussung der Einzelbitbefehle:
 
SZHP/VNC
BIT ?*1 ?0-
SET--- ---
RES--- ---

Flag-Register

BIT  7 6 5 4 3  2  1 0
     S Z X H X P/V N C
 
Frage, obgesetztnicht gesetztwird gesetzt bei
C
N
P/V
H
Z
S
X
Carry-Flag
Add-/Subtract-Flag
Parity-/Overflow-Flag
Half-Carry-Flag
Zero-Flag
Sign-Flag
nicht verwendet
C

PE

Z
M

NC

PO

NZ
P

Uebertrag von Bit 7
Subtraktion
geraderParitaet
Uebertrag von Bit3
Ergebnis 0
neg. Ergebnis
Beeinflussung der Flags:

  1 gesetzt
  0 zurueckgesetzt
  * abhaengig vom Ergebnis einer Operation
  - nicht beeinflusst
  ? unbestimmt


Anlage 2: Speicherbereichsaufteilung

Speicher:
FFFF

FC00

F800
 
 

F000
 

EC00

E800

E400

E000
 
 
 
 
 

4000
3FFF
(Z1013.01)
bzw.
0400
03FF
(Z1013.12)

00B0
 
 
 

0000

|-------------|
|    frei     |
|-------------|
|    frei     |
|-------------|
|             |
|   Monitor   | 2K Byte ROM/EPROM
|             |
|-------------| /DK 14+15
| Bildwieder- |
| holspeicher | 1K Byte statisch RAM
|-------------| /DK13
|    frei     |
|-------------|
|    frei     |
|-------------|
|             |
|-------------| /DK10
|             |
|             |
//   nicht   //
//   belegt  //
|             |
|             |
|-------------|
|             |
|             |
|   Nutzer-   |
|   speicher  |
|             |
|             |
|             |
|    Stack    |
|             |
|   Arbeits-  |
|   speicher  |
|             |
|-------------|


Anlage 3: E/A Adressen

E/A-Adressen:

0000  /IOSEL0  PIO  PORT A  Daten
  01                        Steuerwort
  02                PORT B  Daten
  03                        Steuerwort
0004  /IOSEL1
  05
  06
  07
0008  /IOSEL2  Tastaturspalten-Treiber
  09


Anlage 4: Arbeitszellen des Monitors

Adresse

0000
0003
0004
0005
0008
000B
000D
0010
0013
0016
0018
001B
001D
001F
0020
0023
0025
0027
0028
002B
002D
002F
0030
0033
0035
0038

003B
0047
0049
004B
004D
0066
  .
  .
0090
  .
  .
00B0
00B0

00E0

Laenge

3
1
1
3
3
2
3
3
3
2
3
2
2
1
3
2
2
1
3
2
1
1
3
2
2
3

12
2
2
2
24
3
 

>32
 

>=32
<=48

32

Bedeutung

RST 0H, frei fuer den Anwender
Zwischenspeicher f. Spezifikationsbyte RST 20H
Merkzelle fuer letztes Zeichen von Tastatur
freu fuer Anwendung eines zentralen CALL 5
RST 8H, frei fuer den Anwender
Zwischenspeicher fuer BREAK-Adresse
Zwischenspeicher fuer Operandenfolge bei BREAK
RST 10H, frei fuer den Anwender
Arbeitszellen fuer INHEX-Routine
(SOIL) Anfangsadresse der Eingabezeile
RST 18H, frei fuer den Anwender
(ARG1) Parameter 1
(ARG2) Parameter 2
Code-Zwischenspeicher fuer OUTCH
RST 20H, zentr. Ansprung f. Monitorroutinen
(ARG3) Parameter 3
2. Adresse der Eingabezeile
Merkzelle ASCII(=0)/Grafik(=80H)
RST 28H, frei fuer den Anwender
(CURSR) aktuelle Cursorposition
Cursor-Zwischenspeicher
Merkzelle fuer Phasenlage bei CLOAD
RST 30H, frei fuer den Anwender
Laenge der Synchronisationsluecke bei CSAVE
Beginn Tastencodetabelle
RST 38H, wird als zentraler Fehleransprung ver-
wendet, bei eintritt in den Monitor erscheint ?#
Fortsetzung Tastencodetabelle
Rolldistanz bei OUTCH
Anfangsadresse des BS Rollbereiches
Endadresse+1 des Rollbereiches
Registerrettbereich
NMI, frei fuer den Anwender
 

Anwender-Stackbereich (Stack laeuft nach unten!)
 

System-Stackbereich (Stack laeuft nach unten!)
fei füer Kommandoerweiterungstabelle des Moni-
tors, welche ueber @... erreichbar ist
Kassettenueberspielbereich


Anlage 5: BASIC-Befehlsliste

Kommandos:
BYE
CLOAD
CSAVE
LIST
NEW
RUN

Befehle:

ABS
BYTE
CALL
FOR
GOSUB
GOTO
HEX
I$
IF
IN
INCHAR
INPUT
LEN

NEXT
O$
OUT
OUTCHAR
PEEK
POKE
PRINT
REM
RETURN
RND
SIZE

STEP
STOP
TAB
TO
TOP

WORD
B.
CL.
CS.
L.
N.
R.



A.
BYT.
C.
F.
GOS.
G.
H.



INC.
INP.
LE.

N.


OUTC.
PE.
PO.
PR.

RE.
RN.
S.

STE.
STO.
T.



W.
Verlassen BASIC
Laden von Kassette
Laden auf Kassette
Auflisten BASIC-Programm
Loeschen BASIC-Programm
Start



absoluter Betrag
Ausgabe hexadezimal 8-Bit-Wert
Aufruf Maschinenunterprogramm
Schleifenbeginn
Aufruf BASIC-Unterprogramm
Sprungbefehl
Umwandlung hexadezimal
Eingabe Zeichenkette
Bedingungsabfrage
Eingabe von Maschinenport
Eingabe Zeichen von Tastatur
Eingabe Zahl
Pseudovariable, enthaelt Laenge der
zuletzt eingegeben Zeichenkette
Schleifenende
Ausgabe Zeichenkette
Ausgabe auf Maschinenport
Ausgabe Zeichen
direkter Speicherzugriff
direkter Speicherzugriff
Ausgabe
Kommentarkennzeichen
Rueckkehr vom BASIC-Unterprogramm
Zufallsgenerator
Pseudovariable, enthaelt Ausgabe ueber
verfuegbaren Speicher
Schrittweite
Programmende
Ausgabe Zwischenraum
Festlegung Schleifenendwert
Pseudovariable, erster freier Speicher-
platz
Ausgabe hexadezimal 16-Bit-Wert

Arithmetische Operationen:

+  Addition
-  Subtraktion
/  Division (ganzzahlig)
*  Multiplikation

Vergleichsparameter:

>= groesser gleich
#  ungleich
>  grosser
=  gleich
<= kleiner gleich
<  kleiner


Anlage 6: Steckverbinderbelegung

X1 Systemsteckverbinder
A

00
00
-
D7
D5
D3
D1
/WR
/MREQ
/IEO
A14
A12
A10
A8
5N
A6
A4
A2
A0
/RESET
TAKT
/IODI
/NMI
/WAIT
/RFSH
/PM1
/BUSAK
12P
5P


X1 Systemsteckverbinder (1,6K)
C

00
00
-
D6
D4
D2
D0
/RD
/MEMDI
/IORQ1
A15
A13
A11
A9
5N
A7
A5
A3
A1
/BUSRQ
00
00
/INT
/IORQ
CASG
/HALT
-
12P
5P
X2 Loetkamm fuer Folienflachtastatur

X2 Loetkamm fuer Folienflachtastatur (2,8K)

X4 Anwendertor


1
2
3
4
5
A

5P
PA6
PA3
PA0
00
B

/ASTB
PA7
PA4
PA1
00
C

BRDY
ARDY
PA5
PA2
/BSTB
X4 Anwendertor (0,4K)

X5 Magnetbandanschluß
1 Ausgabe
2 Masse
3 Eingabe
4 Ausgabe
5 Eingabe
X5 Magnetbandanschluss (0,5K)


Anlage 7: Zeichensatz/ASCII-Code

Dez.

32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
Hex.

20
21
22
23
24
25
26
27
28
29
2A
2B
2C
2D
2E
2F
Zeichen

Space
!
"
#
$
%
&
'
(
)
*
+
, (comma)
- (minus)
. (period)
/
Dez.

82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
Hex.

50
51
52
53
54
55
56
57
58
59
5A
5B
5C
5D
5E
5F
Zeichen

P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
^
_ (underline)

48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63

30
31
32
33
34
35
36
37
38
39
3A
3B
3C
3D
3E
3F

0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?

96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111

60
61
62
63
64
65
66
67
68
69
6A
6B
6C
6D
6E
6F

`
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o

64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79

40
41
42
43
44
45
46
47
48
49
4A
4B
4C
4D
4E
4F

@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O

112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127

70
71
72
73
74
75
76
77
78
79
7A
7B
7C
7D
7E
7F

p
q
r
s
t
u
v
w
x
y
z
{
|
}
~

ASCII-Code= American Standard Code of Information Interchange

Codierung der Grafiksymbole:

128 80

129 81

130 82

131 83

132 84

133 86

134 85

135 87

136 88

137 89

138 8A

139 8B

140 8C

141 8D

142 8E

143 8F

160 A0

161 A1

162 A2

163 A3

164 A4

165 A6

166 A5

167 A7

168 A8

169 A9

170 AA

171 AB

172 AC

173 AD

174 AE

175 AF

192 C0

193 C1

194 C2

195 C3

196 C4

197 C6

198 C5

199 C7

200 C8

201 C9

202 CA

203 CB

204 CC

205 CD

206 CE

207 CF

128 E0

129 E1

130 E2

131 E3

132 E4

133 E6

134 E5

135 E7

136 E8

137 E9

138 EA

139 EB

140 EC

141 ED

142 EE

143 EF

144 90

145 91

146 92

147 93

148 94

149 96

150 95

151 97

152 98

153 99

154 9A

155 9B

156 9C

157 9D

158 9E

159 9F

176 B0

177 B1

178 B2

179 B3

180 B4

181 B6

182 B5

183 B7

184 B8

185 B9

186 BA

187 BB

188 BC

189 BD

190 BE

191 BF

208 D0

209 D1

210 D2

211 D3

212 D4

213 D6

214 D5

215 D7

216 D8

217 D9

218 DA

219 DB

220 DC

221 DD

222 DE

223 DF

240 F0

241 F1

242 F2

243 F3

244 F4

245 F6

246 F5

247 F7

248 F8

249 F9

250 FA

251 FB

252 FC

253 FD

254 FE

255 FF

Schachfiguren:



Bauer


Turm


Springer


Läufer


Dame


König

weiß

D  H

23 17
26 1A

24 18
26 1A

25 19
26 1A

27 1B
28 1C

29 1C
31 1F

30 1E
31 1F

schwarz

D  H

14 0E
17 11

15 0F
17 11

16 10
17 11

18 12
19 13

20 14
22 16

21 15
22 16


Anlage 8: Bildschirmadressen



Bildschirmbelegung:

Beispiel:

EC00 .... EFFF

Zeile 15, Spalte 28

Adresse:  EDE0
        +   1C
          EDFC


Anlage 9: Verwendete Schaltkreise

Grundgatter
Gehäuse

DIL14

Schaltzeichen
DL000
DL000 SN74LS00
DL004
DL004 SN74LS04
DL010
DL010 SN74LS10
DL020
DL020 SN74LS20
D-Flip-Flop
Statisch gesteuerter D-FF D175

Gehäuse

DIL16 D175

Schaltzeichen

D175 SN7475

Erläuterungen:

C - Takteingang
D - Dateneingang
Q - Datenausgang
/Q - negierter Datenausgang
H-Pegel an C bewirkt Übernahme von D an Q.
Führt C L-Pegel dann führen Änderungen an D zu keinen
Änderungen an Q.

Flankengesteuertes D-FF DL 074

Gehäuse: wie Grundgatter

Schaltzeichen

DL074 SN74LS74

Erläuterungen:

S - Eingang Setzen: S=0 = Q=1

R - Eingang Rücksetzen: R=0 = Q=0

C - Takt: - Flanke führt zur

    Übernahme der Information von

    D an Q (S=R=1)

D - Dateneingang
Zähler

Asynchroner 4 Bit Binärzähler DL 093

Gehäuse

DIL14 DL093

Schaltzeichen

DL093 SN74????

Erläuterung:

T1 - H-L-Flanke schaltet Ausgang 0
T2 - Zähleingang für Ausgänge 1,2,3; schaltet mit
     H-L-Flanke
H-Pegel an den Rückstelleingängen R0 setzt Ausgänge auf L

Schieberegister

4 Bit Rechts/Links- Schieberegister D 195

Gehäuse: wie Grundgatter

Schaltzeichen

D195 SN74????

Erläuterung:

A0      - serieller Dateneingang
A1...A4 - parallele Dateneingänge (A4 - niederwertigstes Bit)
1...4   - paralle Datenausgänge ( analog A1...A4)
C1, C2  - Schiebetakteingänge
V       - Steuereingang

C1 C2 V A0      A1...A4
-------------------------------
x     1 x       Daten   Parallel Laden und Schieben
   x  0 Daten   x       Serielles Schieben

Multiplexer

4facher 2 zu 1 Multiplexer DL257 (K555 KP 11)

Gehäuse

DIL16

Schaltzeichen

DL257 SN74????

Erläuterung:

A0...A3 Eingänge Wert 1
B0...B3 Eingänge Wert 2
WS      Wortauswahl: 0 Wort 1 an Ausgängen 0...3
                     1 Wort 2 an Ausgängen 0...3
S       Steuereingang: 0 Freigabe des Multiplexers
                       1 Ausgänge hochohmig

Dekoder

BCD zu Dezimal Dekoder MH7442

Gehäuse: wie DL 257

Schaltzeichen

Tesla MH 7442

Erläuterung:

Eingänge Ausgänge
1 2 4 8  0 1 2 3 4 5 6 7 8 9
L L L L  L H H H H H H H H H
L L L H  H L H H H H H H H H
L L H L  H H L H H H H H H H
L L H H  H H H L H H H H H H
L H L L  H H H H L H H H H H
L H L H  H H H H H L H H H H
L H H L  H H H H H H L H H H
L H H H  H H H H H H H L H H
H L L L  H H H H H H H H L H
H L L H  H H H H H H H H H L
H L H L  H H H H H H H H H H
...

Bustreiber

8 Bit bidirektionaler Bustreiber DS 8286

Gehäuse

DIL20

Schaltzeichen

DS8286

Erläuterung:

/CS DIR
 0   0  Daten von DB nach DA
 0   1  Daten von DA nach DB
 1   x  DA und DB hochohmig

Schpeicherschaltkreise

PROM U2616

Gehäuse

DIL24

Schaltzeichen

U2616

Erläuterung:

A0...A10 : Adresseingänge
D0...D7  : Datenausgänge
/CE      : L-Pegel aktiviert PROM
/OE      : L-Pegel gibt Ausgänge frei
UPR      : Programmiereingang

Statischer RAM U2114

Gehäuse

DIL18

Schaltzeichen

U2114

Erläuterung:

A0...A9 : Adresseingänge
D0...D3 : Datenausgänge
/WE     : 0 - Daten schreiben
        : 1 - Daten lesen
/CS     : Busfreigabe

Statischer RAM U256 (K565 RU3) und K565 RU6

Gehäuse

DIL16U256
* für U256

Schaltzeichen

U256

Erläuterung:

A0...A6 : Adresseingänge
DI      : Dateneingang
DO      : Datenausgang
RAS/CAS : s. Abschnitt 3.3
WE      : s. U2114

Mikroprozessor

U880 Z80CPU

U880 Z80CPU

Parallel E/A

U855 Z80PIO

U855 Z80PIO

Erläuterungen s. Handbuch Erläuterungen s. Handbuch


Anlage 10: Zeitverhalten einiger CPU-Funktionen

Signale des Interrupt-Anforderungs und Annahme-Zyklus (14K)
Signale des Bus-Anforderungs- und Annahme-Zyklus (9K)
Signale des M1-Zyklus (10K)
Signale des Daten-Lese bzw. Daten-Schreib-Zyklus (13K)
Signale des Daten-E/A-Zyklus (12K)
Zeitdiagramm für dynamische Speicher (12K)


Anlage 11: Liste des Reassemblers fuer U 880-Befehle

DA EIN TEIL DER HIER WIEDERGEGEBENEN ANWENDER-PROGRAMME,
DER BASIC-INTERPRETER UND DAS IM ROM ENTHALTENE MONITOR-
PROGRAMM IM MASCHINENCODE VORLIEGEN, ERHALTEN SIE MIT DIESEM
REASSEMBLERPROGRAMM DIE MOEGLICHKEIT, EINE RUECKUEBERSETZUNG
IN EINE U880-ASSEMBLERSCHREIBWEISE VORZUNEHMEN.
DIE EINGABE DIESES UND DER FOLGENDEN PROGRAMME ERFOLGT MIT
DEM M-KOMMANDO ANALOG DER BEREITS BESCHRIEBENEN VORGEHENSWEISE
(KONTROLLE MIT PRUEFSUMME CKS). DER REASSEMBLER STEHT AB
ADRESSE 3600H BIS ADRESSE 3FE4H. DER START ERFOLGT AUF DER
ADRESSE 3600H. DAS PROGRAMM MELDET SICH MIT DER AUSSCHRIFT:

ROBOTRON Z 1013 REASS 1.02

AB BIS ORG-ADRESSE:

UNTER DIESER AUSSCHRIFT KOENNEN NUN Z.B.FOLGENDE ADRESSEN EINGE
GEBEN WERDEN:

F000 F020 F000

Die komplette Großschreibung schenke ich mir ab hier,
da es sonst schwer lesbar wird.


D.h. es wird der Anfang des Monitorprogramms rueckuebersetzt.
ist die letzte Adresse gleich der ersten, so kann diese entfallen
ORG-Adresse bedeutet die Adresse, auf der das lauffaehige Programm
stehen muesste. Man kann also auch Programme reassemblieren, die
eigentlich ausserhalb des RAM-Bereiches laufen wuerden oder auf
z.Z. belegten Speicherbereichen lauffaehig sind. Sie koennen
z.B. den in Anlage 13 nicht auf den
Originaladressen ab 3C00H reassemblieren, weil dort der Reassemb-
ler steht. Wenn sie das tun wollen, so muessen sie den Zaehler-
modul
einlesen, anschliessend mit dem T-Kommando z.B. auf die
1000H umladen und danach den Reassembler einlesen und starten.
Kommandos nach dem Einlesen des Zaehlermoduls:

# T 3C00 1000 400
# L 3600 3FFF
# J 3600
;Umladen des Zaehlermoduls
;Einlesen des Reassemblers
;Starten des Reassemblers

ROBOTRON Z 1013 REASS 1.02

AB BIS ORG-ADRESSE:
1000 1020 3C00

Es folgt zeilenweise das reassemblierte Programm (weiter mit Enter).
Zu beachten ist, dass der Reassembler auch bei ASCII-Zeichen
eine Uebersetzung versucht! Daraus koennen mitunter Verschie-
bungen entstehen, die dann auch bei richtigen Maschinenbefehlen
zu einer falschen Rueckuebersetzung fuehren. Nach einigen Bytes
faengt sich der Reassembler und arbeitet wieder korrekt.
In der meisten nachfolgenden Programmen erfolgt der Abbruch
mit S4/K (Shift 4/K).

MC-LISTING des Reassemblers (13,5K)


Anlage 12: Liste des BASIC-Interpreters

Speicherbereich: 100H - BA6H, Start: 100H, Restart: 103H

Beachte: Bei Benutzung einer groesseren Alpha-Tastatur ist
bei der INPUT-Anweisung keine Umschaltung (HEXUM/ALPHA) erforder-
lich. Deshal sind um BASIC die 3 Speicherplätze ab Adresse 43BH
(CD 12 01) und ab Adresse 443H (CD 15 01) auf Null (00 00 00) zu setzen!

Leider habe ich bis jetzt (01.03.2000) noch keinen originalen
BASIC-Interpreter. Aber die Version mit geaenderten CLOAD/CSAVE-Routinen
unterscheidet sich kaum davon.


MC-LISTING des BASIC-Interpreters (19,3K)


Anlage 13: MC-Beispielprogramme

1. Zaehlermodul

Mit diesem Programm koennen ueber den Tonbandeingang
NF-Messungen ausgefuehrt werden. Startadresse: 3C00H

MC-LISTING Zaehlermodul (3,6K)

2. Musikmodul

Mit diesem Programm koennen sie Melodien ueber den Tonband-
ausgang abspielen, die sie vorher programmiert haben. Drehen
sie also den Lautstaerkeregler ihres angeschlossenen Magnetband-
geraetes etwas auf und stellen sie "Aufnahme" ein.

Das Programm besteht aus drei Teilen; dem eigentlichen Programm
ab Adresse 100H und einer Hilfstabelle ab Adresse 170H.

Die Melodie wird im Speicher ab Adresse 190H abgelegt und nach
folgender Vorschrift gebildet:

1. Ein Ton erfordert die Eingabe von 4 Hexdezimalziffern:
Tonlaenge - Tonhoehe - Pausenlaenge - Pausenzeichen (FFH)

2. Tonlaenge
Als Hexa-Zahl 60 30 18 0B 06
Laenge der
Note
1 1
2
1
4
1
8
1
16

3. Tonhoehe
Cis
02
Dis
06

08
Fis
0C
Gis
10
Ais
14
C
00
D
04
E
08
F
0A
G
0E
A
12
H
16
C
18

MC-LISTING Musikmodul (2K)

3. Orgel

Eine andere Moeglichkeit des Musikmachens mit dem Z1013 bietet
dieses kleine Programm. Wenn sie es ab Adresse 300H eingeben,
das Tonbandgeraet auf "Aufnahme" druecken und die Lautstaerke
etwas aufdrehen, koennen sie die untere Reihe der Tastatur als
kleine Orgeltastatur benutzen. Der Inhalt der Speicherzelle mit
der Adresse 31FH bestimmt die Tonlaenge eines Zyklus. Die Ton-
hoehe der einzelnen Tasten wird in der Tabelle ab Adresse 333H
gespeichert. Sie koennen mit dem M-Kommando ab Adresse 333H auch
eine andere Tonleiter eingeben. Zum Beispiel:
# M 333
0333 # 40 39 33 30 2B 26 22 1F ; (ist unguenstiger bei 2 MHz)
wollen sie selbst eine Tonleiter entwerfen, so beginnen sie mit
dem Grundton und aendern sie die folgenden Toene nach Gehoehr.

MC-LISTING Orgel(0,5K)

4. Sirene

Wenn sie das nachfolgende Programm eingeben und hir Tonabandgeraet
wie oben einrichten, so erhalten sie nach dem Starten als Ergebnis
einen auf- un dabschwellenden Ton. Dieser Sirenenton kann auch
aufgezeichnet werden und fuer obige Programm
als Eingangsignal verwendet werden.

durch Veraenderung der Speicherzellen auf den
Adresse mit neuen Inhalten

381H
383H
385H
3ABH

30H...20H...10H
60H...40H...11H
01H...10H...04H
30H...20H...10H
(bei 2 MHz)
60H
E0H
10H
60H
ist der Sirenenton in weiten Grenzen variierbar.

MC-LISTING Sirene (0,5)

5. Ohne Fleiss - kein Preis

Mit dem folgenden Programm koenne sie schon ein kleines
Computersiel durchfuehren. Das Programm wird ab Adresse 100H
bis Adresse 353H eingegeben und auf Adresse 100H gestartet.
mit "->" wird die jeweilige Zahle nach rechts, mit "<-" nach links,
Mit "U" nach oben und mit " " (SPACE) nach unten bewegt.

MC-LISTING Ohne Fleiss, kein Preis (3K)


Anlage 14: BASIC Beispielprogramme

Die hier angegebenen Programme in der Programmiersprache BASIC
erfordern die Z1013 Variante mit 16K RAM und das Vorhandensein
des "3K BASIC VON RER". Eine Erlaeuterung der Programme erfolgte
nur dort, wo es fuer erforderlich gehalten wurde. Ansonsten
reicht die enthaltene Bedienerfuehrung fuer das Verstaendnis
der Programme aus.

1. BASIC-Programm zum Speichern von Adressen und Telefonnummern

Mit diesem BASIC-Programm ist es moeglich ein Adressverzeichnis
aufzubauen, anzuzeigen und zu korrigieren, Man kann aber auch
nach einem bestimmten Namen suchen, alle Adressen nach dem an-
fangsbuchstaben sortieren und ein VErzeichnis auf dem Bildschirm
ausgeben lassen, in dem nur Telefonnumer und Name erscheinen.
Wenn vor Programmstart die RAM-Grenze mit der Anweisung;

END HEX(3FFF)-64

im BASIC erweitert wird, sind maximal 80 Adressen speicherbar.
Bei hoeheren Forderungen muessen die Daten auf Magnetband-
kassette abgespeichert werden oder es ist ein anderes Satzformat
zu waehlen (im Programm ist die Satzlaenge auf 100 Byte festge-
legt). Der Dateianfang wurde in Zeile 40 mit E=8600 festgelegt,
Dass der Wert fuer TOP kleiner als 8600 ist. Ansonsten muesste
der Anfangswert fuer E erhoeht werden.

LISTING Adressen und Telefonnummern (82K)

2. BASIC-Programm "Begriffe raten"

Mit diesem BASIC-Programm koennen Begriffe, Sprichwoerter oder
Saetze abgespeichert werden. Die maximale Satzlaenge sollte ein
Vielfaches von 32 sein. Die maximale Anzahl der Saetze sollte
nicht ueber 120 liegen. Entsprechend dem Menue kann der Spiel-
meister die Begriffe aufbauen, zur kontrolle anzeigen, korri-
gieren, testen und auf Magnetbandkassette abspeichern.
Die Spielidee besteht darin, dass in einer Spielrunde vom Spiel-
meister Begriff fuer Begriff abgerufen werden kann. Dabei wird
jeder Buchstabe des Begriffes durch einen Strich angezeigt.
Die Mitspieler haben nun die Moeglichkeit den Begriff zu erraten
bzw. durch Eingabe eines Buchstabens diesen um Begriff an allen
vorkommenden Stellen aufzublenden. Damit wird der Begriff immer
vollstaendiger. Wurde der Begriff von einem Mitspieler richtig
erraten, so kann dieser durch Betaetigung der ENTER-Taste zur
Anzeige gebracht werden.

LISTING "Begriffe raten" (69K)

3. BASIC-Programm zum Raten einer durch die RND-Funktion ermittelten Zahl

In dem folgenden BASIC-Programm wird die Anwendung der Fenster-
funktion des Monitors gezeigt. In dem Unterprogramm ab Zeile
600 werden auf ARG1(1BH) und ARG2(1DH) die Bildschirmadressen
(EC00H bis F000H) mit der POKE-Anweisung gebracht (z.B.:volles
Fenster). Mit der CALL-Anweisung auf Zeile 630 direkt in das
Monitorprogramm (Adresse F6D1) werden die neuen Adressen des
Rollfensters uebernommen. Ein anderes Rollfenster wird ab Zeile
350 eingestellt (ED40H bis F000H). Zu beachten ist, dass man vor
Verlassen des Programmes wieder auf volles Rollfenster stellen
muss (Zeile 580).
Bei diesem Zahlenratespiel besteht die Moeglichkeit den Zahlen-
bereich, in welchem die Zufallszahl ermittelt werden soll, durch
die Eingabe in Zeile 400 festzulegen. Mit dem Test in Zeile 405
werden ab 1 alle positiven Zahlen bis 32768 akzeptiert.
Mit der Variablen V wird die Anzahl der Versuche mitgezaehlt.
In Zeile 570 und 575 wird eine Warteschleife abgearbeitt, damit
die vorherige Ausschrift "Auf Wiederseh'n" gelesen werden kann.

LISTING Zahlenraten (20K)

4. Mathe-Uebungsprogramm in BASIC

LISTING Mathe-Uebungsprogramm (17K)

5. BASIC-Programm zur Darstellung von Groessen im Balkendiagramm

LISTING Balkendiagramm (23K)

6. BASIC-Programm "Turm von Hanoi"

LISTING "Turm von Hanoi" (32K)

7. BASIC-Programm "Mastermind"

LISTING "Mastermind" als GIF (36K)

8. BASIC-Programm "23 Streichhoelzer"

LISTING "23 Streichhoelzer" als GIF (29K)


Anlage 15: Belegungsplan

Belegungsplan in 150 DPI!!! (53K)


Anlage 16: Stromlaufplan

Anlage 16.1 ZRE-Teil (50K)
Anlage 16.2 E/A Baugruppe und Stromversorgung (37K)
Anlage 16.3 Speicher (43K)
Anlage 16.4 Takt und Bildteil(60K)

Achtung!!! Der Belegungsplan und die Schaltpläne sind nicht aus dem
Originalhandbuch entnommen, sondern entstammen dem Funkamateur 3/89 und 6/89.
Unterschiede wären also nicht auszuschliessen. Wenn solche bekannt sind,
wäre ich ueber eine kurze Information dankbar.
Alle Grafiken liegen in 150DPI und 600 DPI (DIN A4) vor.
Die vollständige Dokumentation, soweit noch auffindbar, gibt es hier.
Oder wer es in hoeherer Auflösung braucht, schreibt an mich.