Robotrontechnik-Forum

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

Robotrontechnik-Forum » Sonstiges » Z8 Assembler: Welcher, bzw. wo beschaffbar? » Themenansicht

Autor Thread - Seiten: -1-
000
12.06.2016, 10:45 Uhr
Micha

Avatar von Micha

Ich versuch grad, etwas tiefer in die U8830 Geschichte einzusteigen. Erste Schrittchen wären ja mal, die Assemblierung z.B. des Bootloaders aus Kieser/Bankel bzw. des 2K ROM des 8830. Hab mir jetzt mal das Z8 Development Studio von Zilog heruntergeladen. Die aktuelle Version 5.2.2 bietet eine riesige Typenvielfalt an, alte Typen wie den Z86C93 hab ich allerdings nicht gefunden.
Und zumindest ein Befehl:
srp #%xy
assembliert (mit nem zufällig gewählten neumodischen Z8 Typ) anders als im Kieser/Bankel Listing.

Kann mir jemand nen Tip geben, welcher Assembler bzw. welche Version des ZDS für diese alten Z8 Typen geeignet ist, und von wo man den Assembler herunterladen kann?
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
12.06.2016, 11:57 Uhr
Klaus



Hallo Micha,

ich glaube da ist Klaus (paulotto) der richtige Mann.
Als Z8 Profi hat er bestimmt einen Tipp.

Viele Grüße,
Klaus
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
12.06.2016, 12:01 Uhr
holm

Avatar von holm

Frankenstein cross assembler package, asz8:


Quellcode:

01b9 35 1c 2d                   sbc     xdest, @ xsrc
01bc 34 1c 2d                   sbc     xdest, xsrc
01bf df                         scf
01c0 d1 2d                      sra     @ xdest
01c2 d0 2d                      sra     xdest
01c4 31 70                      srp     # 112
01c6 27 2d 11                   sub     @ xdest , # immed
01c9 23 dc                      sub     R13, @ R12
01cb 22 dc                      sub     R13, R12



http://free-compilers.sharnoff.org/ECATEGORY/assemble-1.html

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}

Dieser Beitrag wurde am 12.06.2016 um 12:03 Uhr von holm editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
12.06.2016, 12:09 Uhr
paulotto



Hallo Micha,

lade Dir von Zilog das ZDS 3.68 runter. Nur das geht für die alten Typen. Ich stelle als Zieltyp immer Z86C91 ein.

Gruß,

Klaus
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
004
12.06.2016, 12:12 Uhr
Micha

Avatar von Micha

Danke!
Inzwischen hab ich das ältere ZDS 3.68 (bei Zilog!) gefunden. Damit kann ich mit leichten Korrekturen Volker's disassemblierte Version des 8830 ROM korrekt übersetzen.

Man muß bei der Suche nach so speziellem Zeugs im Web immer höllisch aufpassen, daß man nicht irgendwelchen Phishern ins Netz geht... aber wem sag ich das.

Dieser Beitrag wurde am 12.06.2016 um 13:46 Uhr von Micha editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
005
14.06.2016, 20:52 Uhr
maleuma



Ich hatte noch den "Macro Assembler AS 1.42" von Alfred Arnold gefunden, der kann auch Z8 übersetzen. Allerdings habe ich einen eigenartigen Effekt festgestellt. Zwei verschiedene Befehle erzeugen den gleichen Opcode:

Quellcode:
28 E5                   LD R2, R5
28 E5                   LD 2, R5


Ich würde da eher das hier erwarten:

Quellcode:
28 E5                   LD R2, R5
59 02                   LD 2, R5


Was sagen die Z8-Spezialisten dazu? Ist das ein Fehler im Assembler?
Nutzt jemand von Euch den AS 1.42 für den Z8-Prozessor?
--
Mario.

Dieser Beitrag wurde am 14.06.2016 um 21:38 Uhr von maleuma editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
006
14.06.2016, 22:32 Uhr
holm

Avatar von holm

Ja, das ist ein Fehler.

Beim Frnakenstein assembler muß ich erst ein Register Symbol definieren (REG oder RREG) um diese Art der Adressierung nutzen zu können, dafür ist es dann aber eindeutig.


Quellcode:

$ cat asz8tst.lst
00000002 outport          00000000 lolo            

0x2                    outport         REG     $02
0x0                    lolo
0000 28 e5                      ld      R2, R5
0002 59 02                      ld      outport, R5

ERROR SUMMARY - ERRORS DETECTED 0
               -  WARNINGS       0



Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
007
15.06.2016, 08:15 Uhr
volkerp
Default Group and Edit
Avatar von volkerp

Nein, das ist kein Fehler :-)

Mit dem ASSUME-Befehl teilt man AS den aktuellen Wert von RP mit. AS
ist dann in der Lage, bei einer Adresse aus dem internen RAM automa-
tisch zu entscheiden, ob dieser Operand mit einer 4-Bit Adresse ange-
sprochen werden kann oder eine 8-Bit-Adresse verwendet werden mu▀.

Ohne Zuweisung steht RP auf 0. Deshalb ist R2 = 2.


Quellcode:

       1/       0 :                             cpu    z8601
       2/       0 :                             assume RP:0C0h        ; keine Optimierung durch AS!
       3/       0 : 28 E5                       LD R2, R5
       4/       2 : 59 02                       LD 2, R5
       5/       4 :                             end
AS V1.42 Beta [Bld 98] - source file testz8.asm - page 2 - 6/15/2016 8:13:55


--
VolkerP

http://hc-ddr.hucki.net
(Z9001, Z1013, LC-80, ...)
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
008
15.06.2016, 17:48 Uhr
Micha

Avatar von Micha


Zitat:
volkerp schrieb
Mit dem ASSUME-Befehl teilt man AS den aktuellen Wert von RP mit. AS
ist dann in der Lage, bei einer Adresse aus dem internen RAM automa-
tisch zu entscheiden, ob dieser Operand mit einer 4-Bit Adresse ange-
sprochen werden kann oder eine 8-Bit-Adresse verwendet werden mu▀.


Bedeutet das, nach jeder SRP Intsruction die den register pointer ändert müßte man dann jedesmal auch so eine ASSUME Direktive schreiben?

Das wär ja blöd... eigentlich... wobei, wenn ich es mir recht überlege: diese Optimierungsdetails kommen nur dann zum Tragen, wenn man einen alten Code wie das BM200 möglichst identisch per Assemblerquelltext nachbauen will. Im anderen Fall, wenn man was neues schreibt, ist es wohl Banane.

Dieser Beitrag wurde am 15.06.2016 um 17:51 Uhr von Micha editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
009
15.06.2016, 18:49 Uhr
paulotto



warum nehmt Ihr nicht den originalen von Zilog? Der geht wunderbar.
Einfach die kostenlose zds 3.68 runterladen.

Gruß,

Klaus
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
010
15.06.2016, 20:52 Uhr
PIC18F2550

Avatar von PIC18F2550

@paulotto

der läuft doch nur unter Kleinweich. Was schon mal einen großen Teil der Nutzer ausgrenzt.

Bei den offenen Quelltexten kann man wenn man das Versteht eigene Ergänzungen oder Änderungen vornehmen.

Bei mir ist "assume RP:0E0h ; Optimierung durch AS!" immer eingeschaltet.
Wenn der Quelltext nicht das macht was er soll, wird er korrigiert.
Dann funktioniert auch der interne Mechanismus von AS wie es soll.

R0..R15
@R0..@R15
RR0 .. RR14
@RR0 .. RR14
sagen den Assembler das mit RP gearbeitet werden soll

00h...efh und 0fh..ffh
@00h...efh und @0fh..ffh
sagen den Assembler das mit Adressen gearbeitet werden soll
--
42 ist die Antwort auf die "Frage nach dem Leben, dem Universum und dem ganzen Rest"
Aktuelle Projektdokumentationen
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
011
15.06.2016, 21:01 Uhr
maleuma




Zitat:
volkerp schrieb
Nein, das ist kein Fehler :-)

Mit dem ASSUME-Befehl teilt man AS den aktuellen Wert von RP mit...


Danke Torsten, genau das war die Lösung.
AS hat mir jetzt meinen Quelltext so übersetzt wie ich es wollte.


Zitat:
paulotto schrieb
warum nehmt Ihr nicht den originalen von Zilog? Der geht wunderbar.
Einfach die kostenlose zds 3.68 runterladen.


Das wäre mein Plan B gewesen...
Aber das Programmpaket ZDS ist knapp 10MB groß, AS 1.42 dagegen nur knapp 2MB - ich fange da meist bei dem kleineren an zu testen
--
Mario.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
012
15.06.2016, 21:29 Uhr
paulotto



Ich frage nicht nach dem Betriebssystem, ich benutze die Tools, die mir den größten Nutzen bringen. ZDS bringt ja auch noch einen Simulator mit und ein Konvertierprogramm. Zilog versteht hoffentlich seine Rechner und Tools noch am besten.
Wenn es Programme sind, die unter Windows laufen wird eben Windows benutzt und wenn es welche sind , die Linux brauchen, dann benutze ich Linux, auch Unix steht auf meiner Liste.
Wenn jemand auf Linux steht, dann eben Wine benutzen...

Gruß,

Klaus
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
013
16.06.2016, 12:58 Uhr
Bert



Ich hätte hier auch noch eine zeitgemäße (ich meinte natürlich zeitgenössische) Anleitung...


Viele Grüße,
Bert

Dieser Beitrag wurde am 16.06.2016 um 12:59 Uhr von Bert editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
Seiten: -1-     [ Sonstiges ]  



Robotrontechnik-Forum

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