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
A | B | C | D | E | H | L | (HL) | (BC) | (DE) | (nn) | n | |
LD A,. | 7F | 78 | 79 | 7A | 7B | 7C | 7D | 7E | 0A | 1A | 3AXXXX | 3EXX |
LD B,. | 47 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 06XX | |||
LD C,. | 4F | 48 | 49 | 4A | 4B | 4C | 4D | 4E | 0EXX | |||
LD D,. | 57 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 16XX | |||
LD E,. | 5F | 58 | 59 | 5A | 5B | 5C | 5D | 5E | 1EXX | |||
LD H,. | 67 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 26XX | |||
LD L,. | 6F | 68 | 69 | 6A | 6B | 6C | 6D | 6E | 2EXX | |||
LD (HL),. | 77 | 70 | 71 | 72 | 73 | 74 | 75 | 36XX | ||||
LD (BC),. | 02 | |||||||||||
LD (DE),. | 12 | |||||||||||
LD (nn),. | 32XXXX |
A | B | C | D | E | H | L | |
LD ., (IX+d) | DD7Exx | DD46XX | DD4EXX | DD56XX | DD5EXX | DD66XX | DD6EXX |
LD ., (IY+d) | FD7Exx | FD46XX | FD4EXX | FD56XX | FD5EXX | FD66XX | FD6EXX |
LD (IX+d),. | DD77XX | DD70XX | DD71XX | DD72XX | DD73XX | DD74XX | DD75XX |
LD (IX+d),. | FD77XX | FD70XX | FD71XX | FD72XX | FD73XX | FD74XX | FD75XX |
LD (IX+d),n | DD36ddnn | ||||||
LD (IX+d),n | FD36ddnn |
S | Z | H | P/V | N | C | ||
LD A,I | ED57 | * | * | 0 | * | 0 | - |
LD A,R | ED5F | * | * | 0 | * | 0 | - |
LD I,A | ED47 | - | - | - | - | - | - |
LD R,A | ED4F | - | - | - | - | - | - |
BC | DE | HL | SP | IX | IY | |
LD .., nn | 01XXXX | 11XXXX | 21XXXX | 31XXXX | DD21XXXX | FD21XXXX |
LD ..,(nn) | ED4BXXXX | ED5BXXX | 2AXXXX | ED7BXXXX | DD2AXXXX | FD2AXXXX |
LD (nn),.. | ED43XXXX | ED53XXXX | 22XXXX | ED73XXXX | DD22XXXX | FD22XXXX |
LD SP,.. | F9 | DDF9 | FDF9 |
BC | DE | HL | AF | IX | IY | |
PUSH .. | C5 | D5 | E5 | F5 | DDE5 | FDE5 |
POP .. | C1 | D1 | E1 | F1 | DDE1 | FDE1 |
EX (SP),HL | E3 | EX DE,HL | EB |
EX (SP),IX | DDE3 | EXAF | 08 |
EX (SP),IY | FDE3 | EXX | D9 (BC-BC' DE-DE' HL-HL') |
S | Z | H | P/V | N | C | |||||
LDI | EDA0 | - | - | 0 | * | 0 | - | LD (DE), (HL); INC HL; INC DE; DEC BC | ||
LDIR | EDB0 | - | - | 0 | 0 | 0 | - | wie LDI, wiederholen bis BC=0 | ||
LDD | EDA8 | - | - | 0 | * | 0 | - | LD (DE), (HL); DEC HL; DEC DE; DEC BC | ||
LDDR | EDB8 | - | - | 0 | 0 | 0 | - | wie LDD, wiederholen bis BC=0 | ||
CPI | EDA1 | * | * | * | * | 1 | - | LD A,(HL); INC HL, DEC BC | ||
CPIR | EDB1 | * | * | * | * | 1 | - | wie CPI, wiederholen bis BC=0 oder Zeichen gefunden | ||
CPD | EDA9 | * | * | * | * | 1 | - | LD A,(HL); DEC HL, DEC BC | ||
CPDR | EDB9 | * | * | * | * | 1 | - | wie CPD, wiederholen bis BC=0 oder Zeichen gefunden |
Z | NZ | C | NC | PE | PC | M | P | |
JP.. | CAXXXX | C2XXXX | DAXXXX | D2XXXX | EAXXXX | E2XXXX | FAXXXX | F2XXXX |
CA.. | CCXXXX | C4XXXX | DCXXXX | D4XXXX | ECXXXX | E4XXXX | FCXXXX | F4XXXX |
RE.. | C8 | C0 | D8 | D0 | E8 | E0 | F8 | F0 |
JR.. | 28XX | 20XX | 38XX | 30XX |
unbedingt | (HL) | (IX) | (IY) | |
JMP | C3XXX | E9 | DDE9 | FDE9 |
CALL | CDXXX | |||
RET | C9 | |||
JR | 18XX |
RST | 00 | 08 | 10 | 18 | 20 | 28 | 30 | 38 |
C7 | CF | D7 | DF | E7 | EF | F7 | FF |
DJNZ | 10XX | DEC B; JRNZ e |
RETI | ED4D | zurueck vom Interrupt |
RETN | ED45 | zurueck vom nicht maskierbaren Interrupt |
S | Z | H | P/V | N | C | |||
NOP | 00 | - | - | - | - | - | - | Leerbefehl |
HALT | 76 | - | - | - | - | - | - | |
CCF | 3F | - | - | * | - | 0 | * | Komplementiere Carry-Flag |
SCF | 37 | - | - | 0 | - | 0 | 1 | Setze Carry Flag |
EI | FB | - | - | - | - | - | - | Interrupts freigeben |
DI | F3 | - | - | - | - | - | - | Interrupts sperren |
IM 0 | ED46 | - | - | - | - | - | - | Interrupt-Modus 0 |
IM 1 | ED56 | - | - | - | - | - | - | Interrupt-Modus 1 |
IM 2 | ED5E | - | - | - | - | - | - | Interrupt-Modus 2 |
A | B | C | D | E | H | L | S | Z | H | P/V | N | C | |
IN | ED78 | ED40 | ED48 | ED50 | ED58 | ED60 | ED68 | * | * | 0 | * | 0 | - |
OUT | ED79 | ED41 | ED49 | ED51 | ED59 | ED61 | ED69 | - | - | - | - | - | - |
INF | ED70 | Setzen des Flag Registers | * | * | ? | * | 0 | - |
S | Z | H | P/V | N | C | |||
IN n | DBXX | - | - | - | - | - | - | Kanaladresse 'n' |
OUT n | D3XX | - | - | - | - | - | - | Kanaladresse 'n' |
INI | EDA2 | ? | * | ? | ? | 1 | - | IN (HL),(C); INC HL; DEC B |
INIR | EDB2 | ? | 1 | ? | ? | 1 | - | wie INI, wiederholen solange B<>0 |
IND | EDAA | ? | * | ? | ? | 1 | - | IN (HL),(C); DEC HL; DEC B |
INDR | EDBA | ? | 1 | ? | ? | 1 | - | wie IND, wiederholen solange B<>0 |
OUTI | EDA3 | ? | * | ? | ? | 1 | - | OUT (C),(HL); INC HL; DEC B |
OTIR | EDB3 | ? | 1 | ? | ? | 1 | - | wie OUTI, wiederholen solange B<>0 |
OUTD | EDAB | ? | * | ? | ? | 1 | - | OUT (C),(HL); DEC HL; DEC B |
OTDR | EDBB | ? | 1 | ? | ? | 1 | - | wie OUTD, wiederholen solange B<>0 |
B | C | D | E | H | L | (HL) | A | n | (IX+d) | (IY+d) | S | Z | H | P/V | N | C | |
ADD | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | C6XX | DD86XX | FD86XX | * | * | * | * | 0 | * |
ADC | 88 | 89 | 8A | 8B | 8C | 8D | 8E | 8F | CEXX | DD8EXX | FD8EXX | * | * | * | * | 0 | * |
SUB | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | D6XX | DD96XX | FD96XX | * | * | * | * | 1 | * |
SBC | 98 | 99 | 9A | 9B | 9C | 9D | 9E | 9F | DEXX | DD9EXX | FD9EXX | * | * | * | * | 1 | * |
AND | A0 | A1 | A2 | A3 | A4 | A5 | A6 | A7 | E6CC | DDA6XX | FDA6XX | * | * | 1 | * | 0 | 0 |
XOR | A8 | A9 | AA | AB | AC | AD | AE | AF | EEXX | DDAEXX | FDAEXX | * | * | 1 | * | 0 | 0 |
OR | B0 | B1 | B2 | B3 | B4 | B5 | B6 | B7 | F6XX | DDB6XX | FDB6XX | * | * | 1 | * | 0 | 0 |
CMP | B8 | B9 | BA | BB | BC | BD | BE | BF | FEXX | DDBEXX | FDBEXX | * | * | * | * | 1 | * |
INC | 04 | 0C | 14 | 1C | 24 | 2C | 34 | 3C | DD34XX | FD34XX | * | * | * | * | 0 | - | |
DEC | 05 | 0D | 15 | 1D | 25 | 2D | 35 | 3D | DD35XX | FD35XX | * | * | * | * | 1 | - |
S | Z | H | P/V | N | C | |||
DAA | 27 | * | * | * | * | - | * | BCD-Korrektur im A-Register |
CPL | 2F | - | - | 1 | - | 1 | - | Komplementiere A-Register (1er-Komplement) |
NEG | ED44 | * | * | * | * | 1 | * | Komplementiere A-Register (2er-Komplement) |
B | C | D | E | H | L | (HL) | A | (IX+d) | (IY+d) | |
RR | CB18 | CB19 | CB1A | CB1B | CB1C | CB1D | CB1E | CB1F | DDCBXX1B | FDCBXX1E |
RL | CB10 | CB11 | CB12 | CB13 | CB14 | CB15 | CB16 | CB17 | DDCBXX16 | FDCBXX16 |
RRC | CB08 | CB09 | CB0A | CB0B | CB0C | CB0D | CB0E | CB0F | DDCBXX0E | FDCBXX0E |
RLC | CB00 | CB01 | CB02 | CB03 | CB04 | CB05 | CB06 | CB07 | DDCBXX06 | FDCBXX06 |
SRA | CB28 | CB29 | CB2A | CB2B | CB2C | CB2D | CB2E | CB2F | DDCBXX2E | FDCBXX2E |
SLA | CB20 | CB21 | CB22 | CB23 | CB24 | CB25 | CB26 | CB27 | DDCBXX26 | FDCBXX36 |
SRL | CB38 | CB39 | CB3A | CB3B | CB3C | CB3D | CB3E | CB3F | DDCBXX3E | FDCBXX3E |
S | Z | H | P/V | N | C | ||
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 |
S | Z | H | P/V | N | C | |||
RRCA | 0F | - | - | 0 | - | 0 | * | Rotiere A-Register rechts |
RLCA | 07 | - | - | 0 | - | 0 | * | Rotiere A-Register links |
RRA | 1F | - | - | 0 | - | 0 | * | Rotiere A-Register rechts durch Carry |
RLA | 17 | - | - | 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) |
B | C | D | E | H | L | (HL) | A | (IX+d) | (IY+d) | |
BIT 0,. | CB40 | CB41 | CB42 | CB43 | CB44 | CB45 | CB46 | CB47 | DDCBXX46 | FDCBXX46 |
BIT 1,. | CB48 | CB49 | CB4A | CB4B | CB4C | CB4D | CB4E | CB4F | DDCBXX4E | FDCBXX4E |
BIT 2,. | CB50 | CB51 | CB52 | CB53 | CB54 | CB55 | CB56 | CB57 | DDCBXX56 | FDCBXX56 |
BIT 3,. | CB58 | CB59 | CB5A | CB5B | CB5C | CB5D | CB5E | CB5F | DDCBXX5E | FDCBXX5E |
BIT 4,. | CB60 | CB61 | CB62 | CB63 | CB64 | CB65 | CB66 | CB67 | DDCBXX66 | FDCBXX66 |
BIT 5,. | CB68 | CB69 | CB6A | CB6B | CB6C | CB6D | CB6E | CB6F | DDCBXX6E | FDCBXX6E |
BIT 6,. | CB70 | CB71 | CB72 | CB73 | CB74 | CB75 | CB76 | CB77 | DDCBXX76 | FDCBXX76 |
BIT 7,. | CB78 | CB79 | CB7A | CB7B | CB7C | CB7D | CB7E | CB7F | DDCBXX7E | FDCBXX7E |
RES 0,. | CB80 | CB81 | CB82 | CB83 | CB84 | CB85 | CB86 | CB87 | DDCBXX86 | FDCBXX86 |
RES 1,. | CB88 | CB89 | CB8A | CB8B | CB8C | CB8D | CB8E | CB8F | DDCBXX8E | FDCBXX8E |
RES 2,. | CB90 | CB91 | CB92 | CB93 | CB94 | CB95 | CB96 | CB97 | DDCBXX96 | FDCBXX96 |
RES 3,. | CB98 | CB99 | CB9A | CB9B | CB9C | CB9D | CB9E | CB9F | DDCBXX9E | FDCBXX9E |
RES 4,. | CBA0 | CBA1 | CBA2 | CBA3 | CBA4 | CBA5 | CBA6 | CBA7 | DDCBXXA6 | FDCBXXA6 |
RES 5,. | CBA8 | CBA9 | CBAA | CBAB | CBAC | CBAD | CBAE | CBAF | DDCBXXAE | FDCBXXAE |
RES 6,. | CBB0 | CBB1 | CBB2 | CBB3 | CBB4 | CBB5 | CBB6 | CBB7 | DDCBXXB6 | FDCBXXB6 |
RES 7,. | CBB8 | CBB9 | CBBA | CBBB | CBBC | CBBD | CBBE | CBBF | DDCBXXBE | FDCBXXBE |
SET 0,. | CBC0 | CBC1 | CBC2 | CBC3 | CBC4 | CBC5 | CBC6 | CBC7 | DDCBXXC6 | FDCBXXC6 |
SET 1,. | CBC8 | CBC9 | CBCA | CBCB | CBCC | CBCD | CBCE | CBCF | DDCBXXCE | FDCBXXCE |
SET 2,. | CBD0 | CBD1 | CBD2 | CBD3 | CBD4 | CBD5 | CBD6 | CBD7 | DDCBXXD6 | FDCBXXD6 |
SET 3,. | CBD8 | CBD9 | CBDA | CBDB | CBDC | CBDD | CBDE | CBDF | DDCBXXDE | FDCBXXDE |
SET 4,. | CBE0 | CBE1 | CBE2 | CBE3 | CBE4 | CBE5 | CBE6 | CBE7 | DDCBXXE6 | FDCBXXE6 |
SET 5,. | CBE8 | CBE9 | CBEA | CBEB | CBEC | CBED | CBEE | CBEF | DDCBXXEE | FDCBXXEE |
SET 6,. | CBF0 | CBF1 | CBF2 | CBF3 | CBF4 | CBF5 | CBF6 | CBF7 | DDCBXXF6 | FDCBXXF6 |
SET 7,. | CBF8 | CBF9 | CBFA | CBFB | CBFC | CBFD | CBFE | CBFF | DDCBXXFE | FDCBXXFE |
S | Z | H | P/V | N | C | |
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, ob | gesetzt | nicht gesetzt | wird 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
| NC
PO NZ
| Uebertrag von Bit 7
Subtraktion geraderParitaet Uebertrag von Bit3 Ergebnis 0 neg. Ergebnis |
1 gesetzt
0 zurueckgesetzt
* abhaengig vom Ergebnis einer Operation
- nicht beeinflusst
? unbestimmt
Speicher:
FFFF
FC00 F800
F000
EC00 E800 E400 E000
4000
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 | | | |-------------| |
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
Adresse
0000
003B
00E0 | Laenge
3
12
>32
>=32
32 | Bedeutung
RST 0H, frei fuer den Anwender
Anwender-Stackbereich (Stack laeuft nach unten!)
System-Stackbereich (Stack laeuft nach unten!)
|
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
X4 Anwendertor
X5 Magnetbandanschluß
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
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
1
2
3
4
5A
5P
PA6
PA3
PA0
00B
/ASTB
PA7
PA4
PA1
00C
BRDY
ARDY
PA5
PA2
/BSTB
1 Ausgabe
2 Masse
3 Eingabe
4 Ausgabe
5 Eingabe
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 |
160 A0 161 A1 162 A2 163 A3
164 A4 |
192 C0 193 C1 194 C2 195 C3
196 C4 |
128 E0 129 E1 130 E2 131 E3
132 E4 |
144 90 145 91 146 92 147 93
148 94 |
176 B0 177 B1 178 B2 179 B3
180 B4 |
208 D0 209 D1 210 D2 211 D3 212 D4 |
240 F0 241 F1 242 F2 243 F3
244 F4 |
Schachfiguren:
Bauer Turm Springer Läufer Dame König |
weiß |
D H 23 17 24 18 25 19 27 1B 29 1C 30 1E |
schwarz |
D H 14 0E 15 0F 16 10 18 12 20 14 21 15 |
Bildschirmbelegung: Beispiel: |
EC00 .... EFFF Zeile 15, Spalte 28
Adresse: EDE0 |
Schaltzeichen
Gehäuse | Schaltzeichen |
Erläuterungen: | C - Takteingang D - Dateneingang Q - Datenausgang /Q - negierter Datenausgang |
Flankengesteuertes D-FF DL 074
Gehäuse: wie Grundgatter Schaltzeichen |
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 |
Asynchroner 4 Bit Binärzähler DL 093
Gehäuse | Schaltzeichen |
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
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 | Schaltzeichen |
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
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 | Schaltzeichen |
/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 | Schaltzeichen |
A0...A10 : Adresseingänge
D0...D7 : Datenausgänge
/CE : L-Pegel aktiviert PROM
/OE : L-Pegel gibt Ausgänge frei
UPR : Programmiereingang
Gehäuse | Schaltzeichen |
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
|
Schaltzeichen |
A0...A6 : Adresseingänge
DI : Dateneingang
DO : Datenausgang
RAS/CAS : s. Abschnitt 3.3
WE : s. U2114
Mikroprozessor
|
Parallel E/A
|
Erläuterungen s. Handbuch | Erläuterungen s. Handbuch |
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)
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)
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)
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) |
Als Hexa-Zahl | 60 | 30 | 18 | 0B | 06 |
Laenge der Note |
1 | 1 2 |
1 4 |
1 8 |
1 16 |
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 |
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)
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 |
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)
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.
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)
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)
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)
LISTING Mathe-Uebungsprogramm (17K)
LISTING "Turm von Hanoi" (32K)
LISTING "Mastermind" als GIF (36K)
LISTING "23 Streichhoelzer" als GIF (29K)
Belegungsplan in 150 DPI!!! (53K)
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.