Robotrontechnik-Forum

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

Robotrontechnik-Forum » Technische Diskussionen » P8000 - Crosscompiler C » Themenansicht

Autor Thread - Seiten: -1-
000
09.02.2007, 20:31 Uhr
Olli

Avatar von Olli

Hallo,

unter ftp://ftp.groessler.org/pub/chris/olivetti_m20/misc/z8kgcc/ gibts einen Crosscompiler welcher Z8000 Code erzeugt. Leider erzeugt er momentan nur Files im COFF oder PCOS objectformat. Ich habe schon Kontakt mit dem "patcher" von gcc aufgenommen, und er schaut mal wie kompatibel "unser" z.out (CP/M) objectformat zum CP/M-8000 ist, und dann evtl einen Port fuer CP/M angehen.

ansonsten gibt es noch ACT - http://www.cs.vu.nl/ack/ bzw. http://tack.sourceforge.net/ - nach einigen Fehlerbehebungen stecke ich nun aber fest... wobei sich am Ende eh fragt ob der ueberhaupt benutzbar wird. So ganz steige ich da naemlich noch nicht durch was man wo wie compilieren muss... Und selbst wenn er benutzbar ist, erzeugt ehr die files wahrscheinlich auch im "falschen" object format.... schaun wir mal

Hat einer sonst noch n crosscompiler am start?
--
P8000 adventures: http://pofo.de/blog/?/categories/1-P8000
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
09.02.2007, 20:38 Uhr
Olli

Avatar von Olli

CP/M hat leider x.out :-/


Quellcode:
struct x_hdr {
        unsigned        x_magic;        /* magic number */
        unsigned        x_nseg;         /* number of segments in file */
        long    x_init;         /* length of initialized part of file */
        long    x_reloc;        /* length of relocation part of file */
        long    x_symb;         /* length of symbol table part of file */
};


struct x_sg {
        char    x_sg_no;        /* assigned number of segment */
        char    x_sg_typ;       /* type of segment */
        unsigned x_sg_len;      /* length of segment */
};                              /* x_sg[] is an array of size x_nseg */


#define X_SU_MAGIC      0xEE00  /* segmented, non executable */
#define X_SX_MAGIC      0xEE01  /* segmented, executable */
#define X_NU_MAGIC      0xEE02  /* non-segmented, non executable */
#define X_NXN_MAGIC     0xEE03  /* non-segmented, executable, non-shared */
#define X_NUS_MAGIC     0xEE06  /* non-segmented, non executable, shared */
#define X_NXS_MAGIC     0xEE07  /* non-segmented, executable, shared */
#define X_NUI_MAGIC     0xEE0A  /* non-segmented, non executable, split ID */
#define X_NXI_MAGIC     0xEE0B  /* non-segmented, executable, split ID */


WEGAs z.out:

Quellcode:
/* Struktur des Object Modul Headers einer z.out file   */

struct z_exec {
        int     z_magic;        /* Magic number */
        unsigned z_code;        /* size Code */
        unsigned z_data;        /* size Data */
        unsigned z_bss;         /* size BSS */
        unsigned z_syms;        /* size Symbol table */
        unsigned z_entry;       /* entry point */
        unsigned z_flag;
        unsigned z_unused;
        };

/* gueltige Magic Nummern sind E811, E810, E807 */

#define         Z_MAGIC1  0xE807        /* Nonsegmented executable */
#define         Z_MAGIC3  0xE811        /* Nonsegmented separate I & D */


--
P8000 adventures: http://pofo.de/blog/?/categories/1-P8000

Dieser Beitrag wurde am 09.02.2007 um 20:39 Uhr von Olli editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
11.02.2007, 01:08 Uhr
Enrico
Default Group and Edit


Ich habe ein DHRY.COM gefunden. Ist anscheinend ein Dhrystone-Programm fürs CPM. Bei meinem KC (D004) meldet sich das Prog irgendwann mal mit Version 1.1 und 0 Dhrystones.
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
11.02.2007, 10:55 Uhr
Olli

Avatar von Olli

Hab gerade gesehenm das Wega auch s.out kann....
--
P8000 adventures: http://pofo.de/blog/?/categories/1-P8000
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
004
13.02.2007, 06:26 Uhr
Olli

Avatar von Olli

Falls es jemanden interessiert mit ACK zu crosscompilen - da muss man wohl noch ein wenig entwickeln. ACK als solches habe ich zum laufen bringen koennen unter FreeBSD:



Zitat:
Ceriel Jacobs wrote
Hi,

it has been a very long time indeed since we worked on ACK, so the memory is
a bit rusty. Anyway, to get ACK to run on a particular system, you need to
do three things:
- write a conversion program that converts the ack a.out format to the
binary format for your specific machine. You can find several examples
of such a program in the ACK source directory, in directories
"mach/<machine>/cv". Maybe there is one already that looks a bit like
the format that you need.
- write a systemcall interface. There is one in mach/z8000/libmon, but it
may not be suitable for your system. It may give you an idea, however, of
what you need to do. For every system call, you have to put the parameters
where the kernel expects them, and then do the instruction that causes the
kernel to perform the system call. This is all typically undocumented stuff,
but usually you can find out how it works by writing a little C-program that
does the system call you want, compile it statically using your native C
compiler, and then disassembling the binary.
- finally, you have to add a phase to the ack description for z8000 so that
ack calls your conversion program. the description is in the ACK source
directory, in lib/z8000/descr. There are plenty of machine descriptions that
have a conversion program, see for instance lib/sun3/descr.

I hope this helps.

Best wishes,

Ceriel Jacobs


--
P8000 adventures: http://pofo.de/blog/?/categories/1-P8000
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
005
16.02.2007, 19:27 Uhr
Olli

Avatar von Olli

falls es ueberhaupt wen interessiert....
Ich habe heute den pcc (Portable C Compiler) kompiliert bekommen nachdem ich einen Hinweis erhielt wo ich Sys3 Sourcen von einem Z8000 UNIX bekam... Lange Rede kurzer Sinn, der ccom produziert ASM source den der WEGA cas(1) nicht versteht. Den as(1) selber kann man nicht so ohne weiteres compilieren, da der halt a.out objects produziert, WEGA aber nur sein s.out (er)kennt.
Den Z8000 UNIX-as zu patchen um s.out zu erzeugen is mir dann z.Zt. doch noch "zu hoch".
--
P8000 adventures: http://pofo.de/blog/?/categories/1-P8000
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
006
16.02.2007, 21:58 Uhr
Tom Nachdenk



Ja, alles sehr interessant :-)

Um welches Sys3 Unix handelt es sich denn da? Zilog Zeus? Sollte wohl Sys3 kompatibel gewesen sein, und dann gabs wohl noch Coherent, unter anderem angedacht für den CBM 900 von Commodore.

Wäre es nicht Möglich ggf. den Assembler-Quelltext mittels script so zu modifizieren das der cas daraus s.out machen kann? Nur s oeine Idee, ich hab schon aufgegeben als der Ack meine Z8000-Assemblerfiles nicht schlucken mochte ...
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
007
17.02.2007, 09:56 Uhr
Olli

Avatar von Olli

http://wwwcip.informatik.uni-erlangen.de/~simigern/UnixArchive/Other/Distributions/Plexis_Sys3/

dort liegt das source-tar.gz
--
P8000 adventures: http://pofo.de/blog/?/categories/1-P8000
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
008
06.06.2018, 10:59 Uhr
w3llschmidt

Avatar von w3llschmidt

Hi Olli,

ist das der letzte Stand, kein Crosscomplier für U8001/Z8000 ?
--
---------------------------------------------------------------------------
http://twitter.com/w3llschmidt | P8000 | PDP11/73 | PC1715 | MircoVAX III
---------------------------------------------------------------------------
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
009
06.06.2018, 19:31 Uhr
Olli

Avatar von Olli

doch gibt es - aber keinen der ein WEGA verständliches Objektformat erzeugt.
--
P8000 adventures: http://pofo.de/blog/?/categories/1-P8000
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