Robotrontechnik-Forum

Registrieren || Einloggen || Hilfe/FAQ || Suche || Mitglieder || Home || Statistik || Kalender || Admins Willkommen Gast! RSS

Robotrontechnik-Forum » Technische Diskussionen » Z8000 Assembler Hilfe gesucht » Themenansicht

Autor Thread - Seiten: -1-
000
09.10.2023, 12:34 Uhr
Bea

Avatar von Bea

Hallo Zusammen.
Ich hatte vor ein paar Jahren mir einen Z8002 SBC zusammengebaut und heute mal Zeit gefunden ein bischen zu assemblieren.
Nun habe ich mit dem ZASM einige Probleme. Ich möchte einen Blocktransfer mit LDIR machen und bekomme immer einen Fehler.
Laut Handbuch sollte es so aussehen:
LD R1,#Ziel
LD R2,#Quelle
LD R3,#Menge
LD RH0,#0
LDB @R2,RH0
LDIRB @R1,@R2,R3

Viele Dank im voraus
Bea
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
09.10.2023, 16:54 Uhr
Early8Bitz

Avatar von Early8Bitz

Hallo BEA,

wie lautet denn der Fehler?
In Zeile 4 willst Du doch sicher das Byteregister RH0 mit dem Wert 0 laden?
Dann sollte es

LDB RH0,#0

lauten.
--
Gruß
Ralf

Ist ein alter Schaltkreis ein Schaltgreis?
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
09.10.2023, 18:43 Uhr
Early8Bitz

Avatar von Early8Bitz

Ich habs mal mit Zilog-RIO Z8000ASM (bzw. U8000ASM von UDOS) nachgebaut.


Quellcode:

U8000ASM  3.0
LOC    OBJ CODE    STMT SOURCE STATEMENT

                      1 u8ktest module
                      2
                      3 constant
                      4   menge := %800
                      5
                      6 $section program
                      7 global
0000                  8 blockmove procedure
                      9 entry
0000 2101  5800      10         ld      r1,#ziel
0004 2102  5000      11         ld      r2,#quelle
0008 2103  0800      12         ld      r3,#menge
000C C000            13         ldb     rh0,#0
000E 2E20            14         ldb     @r2,rh0
0010 BA21  0310      15         ldirb   @r1,@r2,r3
0014 9E08            16         ret
0016                 17 end blockmove
                     18
                     19 $section data
                     20 $abs    %5000
5000                 21 quelle  array[menge byte]
5800                 22 ziel    array[menge byte]
                     23
                     24 end u8ktest

   0 errors
Assembly complete


Die Befehle der Zeilen 13 und 14 kannst Du auch durch einen einzelnen Befehl ersetzen. Ist zwar bytemäßig keine Einsparung, spart aber eine Quellcodezeile.

Quellcode:

                     13 !       ldb     rh0,#0  !
                     14 !       ldb     @r2,rh0 !
000C 0C25  0000      15         ldb     @r2,#0


--
Gruß
Ralf

Ist ein alter Schaltkreis ein Schaltgreis?

Dieser Beitrag wurde am 09.10.2023 um 18:58 Uhr von Early8Bitz editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
10.10.2023, 00:54 Uhr
Bea

Avatar von Bea

Anbei mal ein Ausschnitt aus der LST Datei.

0000001a 23 LD @R1,R0
ERROR: wrong operand type for this operation
0000001a 24 LDIR @R2,@R1,R3
ERROR: wrong operand type for this operation

Mittlerweile habe ich eine aktuellere Version des AS
und da funktioniert es.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
004
10.10.2023, 14:05 Uhr
Early8Bitz

Avatar von Early8Bitz

Hallo Bea

Quellcode:
0000001a 23 LD @R1,R0


kam in Deiner initialen Frage <000> gar nicht vor, müsste aber richtig sein.

Wenn es mit einer neueren Assembler Version funktioniert, hast Du vermutlich auch nichts falsch gemacht.

Welcher ZASM ist in <000> gemeint? Dieser?
Software for the Z8000 / Z16C00 CPUs
--
Gruß
Ralf

Ist ein alter Schaltkreis ein Schaltgreis?
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
005
10.10.2023, 15:14 Uhr
Bea

Avatar von Bea

Danke für die Hilfe.
Es handelt sich um ZASM11.
Der Fehler war identisch ob ich nun LDIR oder LDIRB verwendet hatte.
Die neuere AS Version 1.42 in der Win32 Version macht ja mittlerweile den Z8001/8002.
"Großes Freu"
Leider tauchen da schon wieder andere Probleme mit den "Priviledge Instruction" auf. Aber dazu später.
Ich habe sogar in meinen Archiven einen GCC gefunden für den Z8000.
Gruß
Bea
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
006
10.10.2023, 15:26 Uhr
Hobi



Den GCC GAS Z8000 gibt es auch wieder für aktuelle Distributionen.
--
-------------------------------------------
Corontäne
-------------------------------------------
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
007
25.10.2023, 14:41 Uhr
Early8Bitz

Avatar von Early8Bitz


Zitat:
Bea schrieb
Ich hatte vor ein paar Jahren mir einen Z8002 SBC zusammengebaut...


Hi Bea,

ist das ein Projekt, wo es eine fertige Leiterplatte gibt und existiert davon evtl. ein überzähliges Exemplar?
--
Gruß
Ralf

Ist ein alter Schaltkreis ein Schaltgreis?
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
008
26.10.2023, 12:43 Uhr
Bea

Avatar von Bea

Hallo,

ja da existiert schon eine TestLeiterplatte.
Serielle, HDD, FDC PS/2 und Videoausgabe auf Monitor (ähnlich AC1).

Es liegen auch noch zwei LP hier rum.


Dieser Beitrag wurde am 26.10.2023 um 12:48 Uhr von Bea editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
Seiten: -1-     [ Technische Diskussionen ]  



Robotrontechnik-Forum

powered by ThWboard 3 Beta 2.84-php5
© by Paul Baecher & Felix Gonschorek