CP/M-Forum

Registrieren || Einloggen || Hilfe/FAQ || Suche || Memberlist || Home || Statistik || Kalender || Staff Willkommen Gast!
[ Unofficial CP/M Website ] [ Z80 Family Support Page ] [ Forum-Regeln ] [ Impressum/Kontakt ]

CP/M-Forum » Softwareprojekte » Cp/m on Line » Threadansicht

Autor Thread - Seiten: [ 1 ] [ 2 ] -3- [ 4 ]
050
11.07.2013, 13:55 Uhr
timetube

Avatar von timetube

Anbei mal ein ScreenShot von der neuen Aufteilung.
CP/M 2.2 on Line

1. Es gibt nun den cpmhost, welcher über /dev/ttyUSBxx oder /dev/ttySxx oder /dev/pts/xx auf eine Verbindung zu einem Target wartet. Brauchen wir alle, da er die Disk-Drives, die Konsole und später auch pucher und lister ... simulieren soll.

2. Das cpm22 Projekt erstellt und patched nur noch die CP/M 2.2 Bootdisk-Image, die vom cpmhost als Drive A: verwendet wird. Hier muss nur die HW-Portadressen und die Statusbits auf das jeweilige Target angepasst werden. Dazu inkludiert das Projekt über eine
#ifdef TARGET_X
#include "tagetx.inc"
#elsifdef TARGET_Y
#include "tagety.inc"
#elsifdef u.s.w.
...
...
#else
#error no target specified
#endif
das jeweils richtige Target, in dem ihr Eure Systemspezifischen Portdefines u.s.w. machen müsstest. Jeder muss so eine Datei selber erstellen!

Wirklich Hardwareabhängig sind nur noch die beiden Prozeduren
CPM2PC und PC2CPM.
Sie sollten möglichst (nach Anpassung der inkludierten Ports) für alle Systeme generisch bleiben und sind in iodrv.inc beschrieben.

3. Dann gibt es ein Simuliertes Targen, das über eine simulierte /dev/pts/xx Verbindung mit diesem cpmhost aufnimmt, um von diesen zu booten und seinen Konsole darüber abzuwickeln. Das Foto zeigt einen ausgeführten DIR Befehl nach dem der Simulator gebootet wurde. Das Target läuft dabei im Debugger der Eclipse IDE

3a. Der /dev/ptsx und /dev/tntxx Simulator ist auch dabei, der ist nicht von mir, daher verlinken ich an dieser Stelle auf das Original Projekt. Die tty Simulation geht auf neuen Kernels allerdings nicht mehr (core). Die ptsx Simulation aber prima und die reicht erst einmal aus.

4. Ja und dann braucht es noch die Firmware für die Verschiedenen Targets von uns. Ich hab schon mal angefangen mit meinem eZ80F92.asm. Ein gutes Beispiel ist auch die Firmware vom Simulator monitor.asm. Ich habe die Firmware für mein Target (ein eZ80F91 evaluation board) mit dabei. Wie bereits beschrieben, brauch jedes Board solche Firmware oder ein Macro, der den BOOT Befehl an das Target sendet und den Bootsecktor einliest. Siehe motitor.asm

Wenn der Simulator bei uns allen soweit läuft wie auf dem Bild, können wir uns an die eigentliche Arbeit machen. Die Checksumme ist noch zu dünn. Eine automatische Wiederholung bei Fehlern fehlt gänzlich u.s.w.

In diesem Sinne

habt Euch gewohl

j.
--
"Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt." Ein Stein.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
051
12.07.2013, 22:31 Uhr
timetube

Avatar von timetube

Hi Hans-Werner

Du hast Dich aus dem Repro ausgetragen. Magst Du nicht mehr?

j.
--
"Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt." Ein Stein.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
052
12.07.2013, 22:37 Uhr
hschuetz

Avatar von hschuetz

Hallo Jürgen,
was habe ich gemacht??? keine Ahnung...???
Ich habe ehrlich noch keinen weg gefunden irgendetwas hochzuladen...
Gruß
Hans-Werner
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
053
13.07.2013, 13:03 Uhr
timetube

Avatar von timetube

Hi Hans-Werner
hab dich wieder hinzugefügt

Ach ja, leider auf Englisch aber recht guter einstig

http://rogerdudler.github.io/git-guide/

und in Deutsch findet man hier alles was man für/über git wissen mag

http://stefanimhoff.de/notiz/einstieg-in-git-als-versionskontrollsystem/


Hier mal eine kleine Beispielsitzung.

Ich möchte irgendwo mitarbeiten und dabei GIT verwenden

Dazu brauche ich lokal ein Repository, über das meine Änderungen verfolgt werden und über das ich Dateien austausche/aktualisiere u.s.w

Git ist bereits installiert und mein Server-Login ist:
ssh://timetube@git.code.sf.net/p/cpmonline/code
(Passwort sag ich nicht
Also ich mach eine Konsole auf und tippe los.


Quellcode:
[juergen@nadhhlt ~]$ pwd
/home/juergen
[juergen@nadhhlt ~]$ mkdir MeinProjekt    
[juergen@nadhhlt ~]$ cd MeinProjekt/
[juergen@nadhhlt MeinProjekt]$ git init    
Initialisierte leeres Git-Projektarchiv in /home/juergen/MeinProjekt/.git/
[juergen@nadhhlt MeinProjekt]$

Ich befinde mich dann im lokalem „master“ Branch.

Ich könnte nun bereits lokal mit diesem Repository arbeiten, also mit 'git add file' eine Datei hinzufügen und mit 'git checkin file' ein-checken u.s.w. Alles nur lokal, für meinen privaten Gebrauch sozusagen.

Ich möchte aber erst einmal das haben, was auf meinen Server bereits ist. Das dortige Repository heißt cpmonline-code. Also hole ich mir alles mit:

Quellcode:
[juergen@nadhhlt MeinProjekt]$ git clone ssh://timetube@git.code.sf.net/p/cpmonline/code cpmonline-code
Klone nach 'cpmonline-code'...
remote: Counting objects: 669, done.
remote: Compressing objects: 100% (526/526), done.
remote: Total 669 (delta 237), reused 416 (delta 75)
Empfange Objekte: 100% (669/669), 7.58 MiB | 245 KiB/s, done.
Löse Unterschiede auf: 100% (237/237), done.
[juergen@nadhhlt MeinProjekt]$ ^C
[juergen@nadhhlt MeinProjekt]$ ls
cpmonline-code
[juergen@nadhhlt MeinProjekt]$ ls cpmonline-code/
cpm22  cpmhost  EZ80F91  libZ80  tty0tty-1.1  Z80SIMULATOR  zasm-3.0.21-i386-ubuntu-linux-2011-06-19
[juergen@nadhhlt MeinProjekt]$

Nun kann ich nach Herzenslust die Dateien lokal Ändern und mit
git add <file> neue hinzufügen, mit
git rm <file> nicht mehr erwünschte löschen

möchte ich einen lokalen Stand sichern geht das mit

git commit -m "Commit message"


Manchmal, oder immer zu Sicherheit, möchte man mal etwas umfangreiches ausprobieren.
Dann legt man sich einen Branch an

git checkout -b test1

arbeitet in diesem Branch ganz normal (add checkin ...) weiter und wenn man das darin gemachte für Gut befindet, kann man diesem Branch wieder mit dem Masterbranch vereinen.

Also zurück in den Masterbranch

git checkout master

die Unterschiede anzeigen kann man dann mit

git diff test1 master

und zusammenführen

git merge test1

und wenn ich den Branch nicht mehr fortsetzen möchte lösche ich den.

git branch -d test1

Nun möchte ich aber mögliche Änderungen anderer Mitstreiter, die diese bereits auf dem Server eingetragen haben, auch lokal haben.

Also mache ich öfter (täglich oder bei Änderungen auf die ich wartete, die einen Fehler beheben u.s.w) mal nachschauen was sich da so geändert hat geht mit

git diff origin master

(origin ist das Synonym für das server-repository)

Und bei Gefallen die Änderungen mit
git pull

zu mir in mein lokales Repository übernehmen. Damit werden alle einfachen (non conflicting) Änderungen automatisch bei mir lokal eingefügt. Gibt es Änderungen die nicht eindeutig sind (conflicting chances) dann werde ich aufgefordert zu entscheiden.

Ja und damit alle was von meiner Arbeit haben veröffentliche ich dann meine Arbeiten auf dem Server

git push origin master
--
"Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt." Ein Stein.

Dieser Post wurde am 13.07.2013 um 13:09 Uhr von timetube editiert.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
054
13.07.2013, 20:08 Uhr
timetube

Avatar von timetube

Hi,

so sollte das bei Euch auch klappen!

Wie weit seit ihr den so, können wir in Phase II eintretten


Build and Run CP/M 2.2 over RS232 simulated Devices

j.
--
"Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt." Ein Stein.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
055
15.07.2013, 08:39 Uhr
hschuetz

Avatar von hschuetz

Hallo Jürgen...
erstmal grün auf schwarzen Hintergrund....nicht gut zu erkennen und bei mir sind jede menge Fehler....

root@NKC2:~/cpmonline-code/Z80SIMULATOR# make clean all
rm -f ./obj/* src/boot.inc
rm -f *~ core *.core
make -C ../cpm22 all TARGETSYS=../Z80SIMULATOR
make[1]: Entering directory `/root/cpmonline-code/cpm22'
mkdir -p ../Z80SIMULATOR/obj
~/bin/zasm -vw2b -I ../Z80SIMULATOR/src -i "./src/cpm22.asm" -o "../Z80SIMULATOR/obj/cpm22.bin" -l ../Z80SIMULATOR/obj/cpm22.lst
______________________________________________________________________________
zasm - z80 assembler (c) 1994-2010 Günter Woigk.
version 3.0.21, 2011-05-29, for BSD / Mac OSX.
send bug reports to: kio@little-bat.de

syntax:
zasm [-vw12bx] [[-i] inputfile] [-o outfile] [-l listfile]

examples:
zasm speccirom.src
zasm romsources/* -o roms/
zasm -vw2 -i speccirom.src -o rom_v2.0.1.rom

zasm [-vw12] ...
all options start with '-'
-1 enable listing in pass 1
-2 enable listing in pass 2
-v include object code in listing
-w append label listing to listing
-b write output as binary data
-x write output in intel hex format

default output format if no option '-b' or '-x' is used:
intel hex format for TTYs
binary for regular files and other non-TTYs

zasm ... [[-i] filenames|dirname] ...
specify input file(s):
if no input file is given, zasm reads from stdin (BUGGY!).
if one or multiple files are given, zasm runs once for each file.
if input is a tty, then zasm runs in command line mode (BUGGY!).
note: '-i' is optional (for most filenames).

zasm ... [-o filename|""|dirname] ...
specify output file(s):
-o <filename> => output is written to that file.
-o "" => output is written to stdout.
-o <directory>:
input = file => output to regular files with derived filenames.
input = stdin => default filenames are used.
if no output is specified:
input = file => output to regular file with a derived filename.
input = stdin => output is written to stdout.

zasm ... [-l filename|""|dirname] ...
specify list file(s):
same rules as for output files except use of stderr.
______________________________________________________________________________
make[1]: *** [cpm22.bin] Fehler 1
make[1]: Leaving directory `/root/cpmonline-code/cpm22'
make: [clean] Fehler 2 (ignoriert)
make: Zirkuläre Datei boot.inc <- boot.inc Abhängigkeit wird nicht verwendet.
make: *** Keine Regel vorhanden, um das Target »cpm.inc«,
benötigt von »boot.inc«, zu erstellen. Schluss.
root@NKC2:~/cpmonline-code/Z80SIMULATOR#
Untere Fenster
root@NKC2:~/cpmonline-code/tty0tty-1.1# make clean all
make -C pts clean
make[1]: Entering directory `/root/cpmonline-code/tty0tty-1.1/pts'
rm -rf tty0tty *.o core
make[1]: Leaving directory `/root/cpmonline-code/tty0tty-1.1/pts'
make -C pts
make[1]: Entering directory `/root/cpmonline-code/tty0tty-1.1/pts'
gcc -Wall -O -g -D_GNU_SOURCE tty0tty.c -o tty0tty
tty0tty.c: In function âconf_serâ:
tty0tty.c:78:5: warning: variable ârcâ set but not used [-Wunused-but-set-variable]
tty0tty.c: In function âcopydataâ:
tty0tty.c:122:3: warning: format â%lXâ expects argument of type âlong unsigned intâ, but argument 4 has type âssize_tâ [-Wformat]
tty0tty.c:154:7: warning: format â%ldâ expects argument of type âlong intâ, but argument 3 has type âssize_tâ [-Wformat]
tty0tty.c:154:7: warning: format â%ldâ expects argument of type âlong intâ, but argument 4 has type âssize_tâ [-Wformat]
make[1]: Leaving directory `/root/cpmonline-code/tty0tty-1.1/pts'
root@NKC2:~/cpmonline-code/tty0tty-1.1# tty0tty
-bash: tty0tty: Kommando nicht gefunden.
root@NKC2:~/cpmonline-code/tty0tty-1.1# ./tty0tty
-bash: ./tty0tty: Datei oder Verzeichnis nicht gefunden
root@NKC2:~/cpmonline-code/tty0tty-1.1# ls
AUTHORS COPYING INSTALL Makefile pts README THANKS TODO VERSION
root@NKC2:~/cpmonline-code/tty0tty-1.1#

kannst du das nicht in ein komplettes script gießen? Irgendwie bin ich da etwas "hilflos"...
Gruß
Hans-Werner
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
056
15.07.2013, 10:39 Uhr
timetube

Avatar von timetube

Hi,

ja, nicht gut :

Erst mal in Hinweis dazu, dass Du als root arbeitest.

kleines Beispiel zu selber ausmalen, was passiert, wenn ich mich z.B. mal vertippte.
OBJDIR != OBJSDIR


Quellcode:
Makefile
-----------

OBJDIR=./obj
...
...
clean:
         rm -fr $(OBJSDIR)/*

----------

Dann ist Deine gesamte Installation futsch )

Ich empfehle Dir dringend einen user einzurichten und den die Programmierarbeit machen zu lassen



Quellcode:
tty0tty.c:122:3: warning: format â%lXâ expects argument of type âlong unsigned intâ, but argument 4 has type âssize_tâ [-Wformat]

Das liegt daran, dass ich auf einer 64bit Maschine arbeite und die Typen bei mir angepasst hatte
Ich mach da was kompatibles


Quellcode:
make[1]: Entering directory `/root/cpmonline-code/tty0tty-1.1/pts'
---------------------------------------###########################
gcc -Wall -O -g -D_GNU_SOURCE tty0tty.c -o tty0tty
tty0tty.c: In function âconf_serâ:
...
...
...
root@NKC2:~/cpmonline-code/tty0tty-1.1# tty0tty
-bash: tty0tty: Kommando nicht gefunden.
root@NKC2:~/cpmonline-code/tty0tty-1.1# ./tty0tty
-bash: ./tty0tty: Datei oder Verzeichnis nicht gefunden
root@NKC2:~/cpmonline-code/tty0tty-1.1# ls
AUTHORS COPYING INSTALL Makefile pts README THANKS TODO VERSION
root@NKC2:~/cpmonline-code/tty0tty-1.1#

Da hast Du zu früh aufgegeben, noch ein Verzeichnis tiefer und es hätte geklappt

~/cpmonline-code/tty0tty-1.1/pts/tty0tty

Die Zeile Entering .... hätte Dir ein Hinweis geben sollen.

--- Zum zasm,
ich habe eine Option hinzugefügt [-I path], um dem Assembler mitzuteilen wo er nach include Files suchen soll. Du must den also aus den Sources vom Server neu erstellen


Bitte ALLES noch mal local aktualisieren mit

git reset --hard origin/master

vielleicht vorher Deine eigenen Änderungen sichern

dann sollte es gehen.


PS: Ich checke heute Abend noch mal einen Haufen neues Zeugs ein.
Die Kommunikation wird dann mit crc16 gesichert und es gibt ein Template (TARGETTEMPLATE) von dem dann ein eigenen Target abgeleitet werden kann.

Das CP/M und die Bootdisk wird dann innerhalb dieser Targets, mit den dort festgelegten Parametern und Monitor (IO-Routinen) automatisch erstellt.

Wenn Du also bis Morgen gedult hast, mach das mit dem
git reset --hard origin/master
morgen oder morgen noch einmal
--
"Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt." Ein Stein.

Dieser Post wurde am 15.07.2013 um 10:43 Uhr von timetube editiert.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
057
15.07.2013, 10:51 Uhr
hschuetz

Avatar von hschuetz

Hallo Jürgen,
also den ZASM neu compilieren? Ok ich versuche das mal mit meinem User...
Allerdings ist es kein Problem wenn alles weg ist....Installation dauert mal gerade 1 Stunde....
Änderungen an deinen Files habe ich noch keine gemacht...erstmal muss dein Zeugs bei mir laufen.. dann sehen wir weiter. Also morgen neues Glück...
Gruß
Hans-Werner
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
058
23.07.2013, 07:27 Uhr
hschuetz

Avatar von hschuetz

Hallo Jürgen,
endlich bin dazu gekommen wieder zu testen...
Im zasm make file ist wohl ein Fehler... er erstellt eine Datei namens bin und kein Verzeichnist mit der Datei zasm... allerdings habe ich immer noch das gleiche Problem... Auszug:
dd if=../cpmhost/disks/drivea.cpm of=../Z80SIMULATOR/obj/tmp.dat bs=1 skip=6656
249600+0 Datensätze ein
249600+0 Datensätze aus
249600 Bytes (250 kB) kopiert, 2,52303 s, 98,9 kB/s
cat ../Z80SIMULATOR/obj/tmp.sys ../Z80SIMULATOR/obj/tmp.dat > ../Z80SIMULATOR/obj/tmp.dsk
mv -f ../cpmhost/disks/drivea.cpm ../cpmhost/disks/drivea.cpm.bak
cp -f ../Z80SIMULATOR/obj/tmp.dsk ../cpmhost/disks/drivea.cpm
make[1]: Leaving directory `/home/hschuetz/cpmonline-code/cpm22'
make: Zirkuläre Datei boot.inc <- boot.inc Abhängigkeit wird nicht verwendet.
~/bin/zasm -vw2b -i "./src/monitor.asm" -o "./obj/monitor.bin" -l ./obj/monitor.lst
zasm: "./src/monitor.asm", "./obj/monitor.bin", "./obj/monitor.lst"
zasm: no errors.
make: *** Keine Regel vorhanden, um das Target »../libZ80/Debug/libZ80.a«,
benötigt von »z80emu.o«, zu erstellen. Schluss.
hschuetz@NKC2:~/cpmonline-code/Z80SIMULATOR$
Das Verzeichnis libZ80/Debug existiert nicht... angelegt und die libZ80.a hineinkopiert... Ergebnis:
mv -f ../cpmhost/disks/drivea.cpm ../cpmhost/disks/drivea.cpm.bak
cp -f ../Z80SIMULATOR/obj/tmp.dsk ../cpmhost/disks/drivea.cpm
make[1]: Leaving directory `/home/hschuetz/cpmonline-code/cpm22'
g++ -o cpmsim ./obj/z80emu.o -L ../libZ80/Debug -lZ80 -lpthread
/usr/bin/ld: skipping incompatible ../libZ80/Debug/libZ80.a when searching for -lZ80
/usr/bin/ld: cannot find -lZ80
collect2: error: ld returned 1 exit status
make: *** [cpmsim] Fehler 1
hschuetz@NKC2:~/cpmonline-code/Z80SIMULATOR$

Wie gesagt... alles ohne eine Änderung von mir.... wie komme ich weiter?
Gruß
Hans-Werner
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
059
23.07.2013, 09:19 Uhr
timetube

Avatar von timetube

Hi,

ja, ich habe ja auch einiges geändert zwischenzeitlich, bei Dir sieht es aber so aus, als würdest Du noch die alten Sachen verwenden. Ich regte ja an, alles noch mal neu von Server zu laden

Mach das doch mal, vielleicht ja in ein paralleles, neues Verzeichnis:

Dann sollte es so aussehen


Quellcode:
drwxrwxr-x. 4 juergen juergen 4096 Jul 17 00:09 cpm22
drwxrwxr-x. 7 juergen juergen 4096 Jul 22 23:01 cpmhost
drwxrwxr-x. 5 juergen juergen 4096 Jul 13 21:31 EZ80F91
drwxrwxr-x. 4 juergen juergen 4096 Jul 13 21:30 libZ80
drwxr-xr-x. 3 juergen juergen 4096 Jul 13 20:54 tty0tty-1.1
drwxrwxr-x. 5 juergen juergen 4096 Jul 22 23:14 Z80SIMULATOR
drwxr-xr-x. 5 juergen juergen 4096 Jul 12 02:00 zasm-3.0.21-CPMoL

- cpm22 beinhaltet die CP/M 2.2 das generische BIOS.ASM und den BOOT.ASM
- cpmhost ist die Hostsoftware, die Disketten-Drives und Konsole emuliert
- EZ80F91 ist mein Target
l- ibZ80 ist die CPU Simulation
- Z80SIMULATOR ist der Target Simulator.
Den solltest Du Dir Kopieren z.B.
cp -r Z80SIMULATOR HansWernerTarget
und darin die monitor.asm auf Dein System anpassen. Nicht vergessen die dann benötigten Speicherbereiche anzupassen (cpm.inc). In der Monitor.ASM ist das komplette RS232 Protokoll, inklusive der CRC16 gesicherten Übertragung zwischen cpmhost und dem Target und dem Bootloader!

Der Assembler sollte dann


Quellcode:
09:00:38 **** Build of configuration Default for project zasm-3.0.21-CPMoL ****
make all
g++ -O0 -g -Wall -Wno-multichar -fno-rtti -fshort-enums -DFINAL -DOPT_INCLPATH -Ilibraries/ -I./ -c libraries/unix/FILE.cpp -o libraries/unix/FILE.o
g++ -O0 -g -Wall -Wno-multichar -fno-rtti -fshort-enums -DFINAL -DOPT_INCLPATH -Ilibraries/ -I./ -c libraries/unix/tempmem.cpp -o libraries/unix/tempmem.o
g++ -O0 -g -Wall -Wno-multichar -fno-rtti -fshort-enums -DFINAL -DOPT_INCLPATH -Ilibraries/ -I./ -c libraries/unix/file_utilities.cpp -o libraries/unix/file_utilities.o
g++ -O0 -g -Wall -Wno-multichar -fno-rtti -fshort-enums -DFINAL -DOPT_INCLPATH -Ilibraries/ -I./ -c libraries/unix/os_utilities.cpp -o libraries/unix/os_utilities.o
g++ -O0 -g -Wall -Wno-multichar -fno-rtti -fshort-enums -DFINAL -DOPT_INCLPATH -Ilibraries/ -I./ -c libraries/kio/errors.cpp -o libraries/kio/errors.o
g++ -O0 -g -Wall -Wno-multichar -fno-rtti -fshort-enums -DFINAL -DOPT_INCLPATH -Ilibraries/ -I./ -c libraries/kio/log.cpp -o libraries/kio/log.o
g++ -O0 -g -Wall -Wno-multichar -fno-rtti -fshort-enums -DFINAL -DOPT_INCLPATH -Ilibraries/ -I./ -c libraries/kio/abort.cpp -o libraries/kio/abort.o
g++ -O0 -g -Wall -Wno-multichar -fno-rtti -fshort-enums -DFINAL -DOPT_INCLPATH -Ilibraries/ -I./ -c libraries/cstrings/cstrings.cpp -o libraries/cstrings/cstrings.o
g++ -O0 -g -Wall -Wno-multichar -fno-rtti -fshort-enums -DFINAL -DOPT_INCLPATH -Ilibraries/ -I./ -c Ass.cpp -o Ass.o
g++ -O0 -g -Wall -Wno-multichar -fno-rtti -fshort-enums -DFINAL -DOPT_INCLPATH -Ilibraries/ -I./ -c main.cpp -o main.o
g++ -O0 -g -Wall -Wno-multichar -fno-rtti -fshort-enums -DFINAL -DOPT_INCLPATH -Ilibraries/ -I./ -c AssZ80.cpp -o AssZ80.o
g++   libraries/unix/FILE.o  libraries/unix/tempmem.o  libraries/unix/file_utilities.o  libraries/unix/os_utilities.o  libraries/kio/errors.o  libraries/kio/log.o  libraries/kio/abort.o  libraries/cstrings/cstrings.o  Ass.o  main.o  AssZ80.o -lpthread -o zasm
cp -f zasm ~/bin

09:00:40 Build Finished (took 1s.462ms)


gebaut werden

die CPU Simulation so


Quellcode:
09:01:52 **** Build of configuration Debug for project libZ80 ****
make all
Building file: ../disas.cpp
Invoking: GCC C++ Compiler
g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"disas.d" -MT"disas.d" -o "disas.o" "../disas.cpp"
Finished building: ../disas.cpp

Building file: ../sim1.cpp
Invoking: GCC C++ Compiler
g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"sim1.d" -MT"sim1.d" -o "sim1.o" "../sim1.cpp"
Finished building: ../sim1.cpp

Building file: ../sim2.cpp
Invoking: GCC C++ Compiler
g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"sim2.d" -MT"sim2.d" -o "sim2.o" "../sim2.cpp"
Finished building: ../sim2.cpp

Building file: ../sim3.cpp
Invoking: GCC C++ Compiler
g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"sim3.d" -MT"sim3.d" -o "sim3.o" "../sim3.cpp"
Finished building: ../sim3.cpp

Building file: ../sim4.cpp
Invoking: GCC C++ Compiler
g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"sim4.d" -MT"sim4.d" -o "sim4.o" "../sim4.cpp"
Finished building: ../sim4.cpp

Building file: ../sim5.cpp
Invoking: GCC C++ Compiler
g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"sim5.d" -MT"sim5.d" -o "sim5.o" "../sim5.cpp"
Finished building: ../sim5.cpp

Building file: ../sim6.cpp
Invoking: GCC C++ Compiler
g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"sim6.d" -MT"sim6.d" -o "sim6.o" "../sim6.cpp"
Finished building: ../sim6.cpp

Building file: ../sim7.cpp
Invoking: GCC C++ Compiler
g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"sim7.d" -MT"sim7.d" -o "sim7.o" "../sim7.cpp"
Finished building: ../sim7.cpp

Building target: libZ80.a
Invoking: GCC Archiver
ar -r  "libZ80.a"  ./disas.o ./sim1.o ./sim2.o ./sim3.o ./sim4.o ./sim5.o ./sim6.o ./sim7.o  
ar: creating libZ80.a
Finished building target: libZ80.a


09:01:53 Build Finished (took 115ms)


der Z80Simulator so, mus vor cpm22 gebaut werden !!!


Quellcode:
09:01:53 **** Build of configuration Default for project Z80SIMULATOR ****
make all
~/bin/zasm -vw2b -I ./src -i "./src/monitor.asm" -o "monitor.bin" -l ./obj/monitor.lst
  zasm: "./src/monitor.asm", "monitor.bin", "./obj/monitor.lst"
cat obj/monitor.lst  | awk -f symbols.awk > src/monitor.inc
  zasm: no errors.
g++ -c -pipe -g -Wall -I ../libZ80  -o "./obj/z80emu.o" "./src/z80emu.cpp"
g++  -o z80sim ./obj/z80emu.o -L ../libZ80/Debug -lZ80 -lpthread

09:01:53 Build Finished (took 109ms)


ja und eine bootdisketten image wird dann so gebaut


Quellcode:
09:03:39 **** Build of configuration Default for project cpmhost ****
make MONITOR=../Z80SIMULATOR/src all
~/bin/zasm -vw2b -I ../Z80SIMULATOR/src -i "cpm22/bios.asm" -o ../Z80SIMULATOR/src/bins/bios.bin -l ../Z80SIMULATOR/src/bins/bios.lst
  zasm: "cpm22/bios.asm", "../Z80SIMULATOR/src/bins/bios.bin", "../Z80SIMULATOR/src/bins/bios.lst"
  zasm: no errors.
  zasm: "cpm22/boot.asm", "../Z80SIMULATOR/src/bins/boot.bin", "../Z80SIMULATOR/src/bins/boot.lst"
~/bin/zasm -vw2b -I ../Z80SIMULATOR/src -i "cpm22/boot.asm" -o ../Z80SIMULATOR/src/bins/boot.bin -l ../Z80SIMULATOR/src/bins/boot.lst
  zasm: no errors.
~/bin/zasm -vw2b -I ../Z80SIMULATOR/src -i "cpm22/cpm22.asm" -o ../Z80SIMULATOR/src/bins/cpm22.bin -l ../Z80SIMULATOR/src/bins/cpm22.lst
  zasm: "cpm22/cpm22.asm", "../Z80SIMULATOR/src/bins/cpm22.bin", "../Z80SIMULATOR/src/bins/cpm22.lst"
cp -f ../Z80SIMULATOR/src/bins/boot.bin     disks/drivea.cpm
  zasm: no errors.
cat  ../Z80SIMULATOR/src/bins/cpm22.bin >> disks/drivea.cpm
cat  ../Z80SIMULATOR/src/bins/bios.bin  >> disks/drivea.cpm
dd if=../Z80SIMULATOR/src/drivea.cpm bs=1 skip=6656     >> disks/drivea.cpm
249600+0 records in
249600+0 records out
echo disks/drivea.cpm done
249600 bytes (250 kB) copied, 0.366919 s, 680 kB/s
disks/drivea.cpm done
g++ -pipe -g -Wall  src/cpm22host.cpp -o "cpmhost"

09:03:39 Build Finished (took 610ms)


hier kannst Du sehen das mit MONITOR=<path zum target monitor.inc file> angegeben werden muss für welches Target das Boot-Image gebaut werden soll.
Das Bootimage braucht natürlich eine Musterdatei, die ausser das CP/M die Dateien enthällt, die die Boot-Disk dann haben soll. Dieses muster erwartet der Bauprozess unter

$(MONITOR)/disks/drivea.cpm wie im folgenden Befehl zu sehen.

.dd if=../Z80SIMULATOR/src/drivea.cpm bs=1 skip=6656 >> disks/drivea.cpm
249600+0 records in
249600+0 records out

wo einfach der Datenbereich der Bootdisk für dieses Target (MONITOR) hinter die CP/M Systemspuren gehängt wird, die das Programm cpmhost das als Drive A: verwenden kann.

Das ist eigentlich alles und sollte auch bei Dir genau so aussehen.
Andernfalls müssen wir ersteinmal herausfinden, woher diese unterschiedlcihen verhalten unserer beiden Systeme her rühren.

Kannst Du mal bitte alle diese Schritte genau so ausführen und ALLES (ALLE AUSGABEN) hier posten. Am besten in einer einzigen zusammenhängenden Konsole-Trace-Date ?


j.
--
"Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt." Ein Stein.

Dieser Post wurde am 23.07.2013 um 09:33 Uhr von timetube editiert.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
060
23.07.2013, 09:39 Uhr
timetube

Avatar von timetube

Und kannst Du mal den folgenden Befehl auf Deinem erstellten Archiv, die libZ80.a, ausführen und die Ausgabe hier senden?


Quellcode:
[juergen@nadhhlt Debug]$ objdump -a libZ80.a
In archive libZ80.a:

disas.o:     file format elf64-x86-64
rw-rw-r-- 1000/1000 177592 Jul 23 09:36 2013 disas.o


sim1.o:     file format elf64-x86-64
rw-rw-r-- 1000/1000 487560 Jul 23 09:36 2013 sim1.o


sim2.o:     file format elf64-x86-64
rw-rw-r-- 1000/1000 208560 Jul 23 09:36 2013 sim2.o


sim3.o:     file format elf64-x86-64
rw-rw-r-- 1000/1000 119832 Jul 23 09:36 2013 sim3.o


sim4.o:     file format elf64-x86-64
rw-rw-r-- 1000/1000 129472 Jul 23 09:36 2013 sim4.o


sim5.o:     file format elf64-x86-64
rw-rw-r-- 1000/1000 118560 Jul 23 09:36 2013 sim5.o


sim6.o:     file format elf64-x86-64
rw-rw-r-- 1000/1000 114144 Jul 23 09:36 2013 sim6.o


sim7.o:     file format elf64-x86-64
rw-rw-r-- 1000/1000 114144 Jul 23 09:36 2013 sim7.o

[juergen@nadhhlt Debug]$ ;2A


--
"Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt." Ein Stein.

Dieser Post wurde am 23.07.2013 um 09:39 Uhr von timetube editiert.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
061
24.07.2013, 14:26 Uhr
hschuetz

Avatar von hschuetz

Hallo Jürgen,
irgendwie bin ich zu blöd... was muss in welcher Reihenfolge wie compiliert werden? Ist das ganze nun so lauffähig oder muss ich da noch irgendwo Hand anlegen? Einen Teil bekomme ich ja hin...nur dann fehlt es hier und dann da...
Wie wäre es wenn du mal auf meinem System dir das anschaust! Ein SSL Fernzugang hab ich eingerichtet... Daten per PM
Gruß
Hans-Werner
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
062
25.07.2013, 01:22 Uhr
TFM

Avatar von TFM

Interessantes Projekt. Viel Erfolg dabei

Erinnert mich an CP/M Plus, das ich am CPC von der RAM disc starten kann. Also auch Discless im weiteren Sinne.
--
TFM of FutureSoft
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
063
25.07.2013, 10:00 Uhr
timetube

Avatar von timetube


Zitat:
TFM postete
Interessantes Projekt. Viel Erfolg dabei

Erinnert mich an CP/M Plus, das ich am CPC von der RAM disc starten kann. Also auch Discless im weiteren Sinne.

Unsere Systeme sind ALLES-Less Die haben weder Console noch ein CP/M Fähiges ROM (Firmware) Was wir vor haben ist den gesammten IO, also Konsole, Printer, AUX und vor allem Disk-IO über eine einzelne RS232 zu multiplexen.

Das klappt auch schon recht gut, wir haben nur noch Probleme mit den sich unterscheidenden Build-Umgebungen. Der Device-Simulator läuft auf einem Linux PC und erwartet an einer ttySxy das Target.

Wir haben ein kleines, CRC16 gesichertes Protokoll, welches über RS232 (Aber auch jedes andere Medium wie Netz 1Wire, PSI u.s.w.) transportiert werden kann. Ich nutze es z.B. auch über TCP/IP

Mach mit, ist bestimmt ein echtes Retro-Erlebnis.

j.
--
"Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt." Ein Stein.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
064
25.07.2013, 10:09 Uhr
timetube

Avatar von timetube


Zitat:
hschuetz postete
Hallo Jürgen,
irgendwie bin ich zu blöd... was muss in welcher Reihenfolge wie compiliert werden? Ist das ganze nun so lauffähig oder muss ich da noch irgendwo Hand anlegen? Einen Teil bekomme ich ja hin...nur dann fehlt es hier und dann da...
Wie wäre es wenn du mal auf meinem System dir das anschaust! Ein SSL Fernzugang hab ich eingerichtet... Daten per PM
Gruß
Hans-Werner

Hi Hans-Werner.
Du bist sicher nicht zu blöd, ich erkläre so was einfach nicht oder nicht gut genug. Ich bin es der zu blöd ist zu begreifen, dass das was in meinem Kopf rum-spukt, nicht auch in den der Anderen ist. Und darüber solltet ihr froh sein )))


Also

1. Der Assembler muss laufen, mit den Änderungen und Bug-Fixes, die ich machte. Also der aus unserem Repro.

2. Für das Z80SIMULATOR Target muss die libZ80.a und das Projekt tty0tty0/pts vorhanden sein, also als Nächstes gebaut werden.

3. Dann baut man das TARGET hier mal den Z80SIMULATOR oder eben sein Target, wenn man schon eine Kopie dieses Simulators angelegt und auf sein Taregt angepasst/implementiert hat. Wichtig ist hierbei die cpm.inc und der monitor.asm. Beim Bau des Targets wird eine monitor.inc erzeugt, diese wird zum Erstellen des boot.asm, bios.asm und cmp22.asm benötigt.

Dieses CP/M 2.2 Bootdisk wird bei der Erstellung der Host-Software cpmhost mit Erstellt. Also

4. cmphost erstellen.

auf gehts
--
"Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt." Ein Stein.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
065
25.07.2013, 10:43 Uhr
hschuetz

Avatar von hschuetz

Hallo Jürgen,
hier mal eine Liste was ich bisher gemacht habe:

juergen@NKC2:~$ git clone git://git.code.sf.net/p/cpmonline/code cpmonline-code
juergen@NKC2:~/cpmonline-code/zasm-3.0.21-CPMoL/source$ make
juergen@NKC2:~/cpmonline-code/libZ80$ make -C Debug/ clean all
juergen@NKC2:~/cpmonline-code/tty0tty-1.1$ make clean all
juergen@NKC2:~/cpmonline-code/Z80SIMULATOR$ maake clean all
juergen@NKC2:~/cpmonline-code/cpmhost$ make clean all

weiter komme ich nicht... kannst du die Liste erweitern?
nebenbei: der ZASM erstell nur ein File bin und kein Verzeichnis....
Verzeichnis erstellt und von ../sorces ZASM kopiert...

hier nun mein Problem... dieser aktuelle Stand liegt auf deinem Login... siehe deine Private Message.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
066
25.07.2013, 10:46 Uhr
hschuetz

Avatar von hschuetz

Hallo Jürgen,
leider ist der gesamte text zu lang für hier...
also nur die Zeilen welche Fehler beinhalten...

ERR equ $FDAF ; = 64943
EMON equ $FFFF ; = 65535

zasm: no errors.
cat obj/monitor.lst | awk -f symbols.awk > src/monitor.inc
cat: obj/monitor.lst: Datei oder Verzeichnis nicht gefundenawk: symbols.awk: line 30:
function strftime never defined
make: *** [src/monitor.inc] Fehler 2
juergen@NKC2:~/cpmonline-code/Z80SIMULATOR$

***********************************************************
CPMHOST

***********************************************************
juergen@NKC2:~/cpmonline-code/cpmhost$ make clean all
Makefile:9: *** set the MONITOR environment for that the CP/M 2.2 should be created. make MONITOR=../Z80SIMULATOR/src for example.. Schluss.
juergen@NKC2:~/cpmonline-code/cpmhost$

Gruß
Hans-Werner
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
067
25.07.2013, 11:29 Uhr
timetube

Avatar von timetube


Zitat:
hschuetz postete
Hallo Jürgen,
hier mal eine Liste was ich bisher gemacht habe:

juergen@NKC2:~$ git clone git://git.code.sf.net/p/cpmonline/code cpmonline-code
juergen@NKC2:~/cpmonline-code/zasm-3.0.21-CPMoL/source$ make
juergen@NKC2:~/cpmonline-code/libZ80$ make -C Debug/ clean all
juergen@NKC2:~/cpmonline-code/tty0tty-1.1$ make clean all
juergen@NKC2:~/cpmonline-code/Z80SIMULATOR$ maake clean all
juergen@NKC2:~/cpmonline-code/cpmhost$ make clean all

weiter komme ich nicht... kannst du die Liste erweitern?
nebenbei: der ZASM erstell nur ein File bin und kein Verzeichnis....
Verzeichnis erstellt und von ../sorces ZASM kopiert...

hier nun mein Problem... dieser aktuelle Stand liegt auf deinem Login... siehe deine Private Message.

Also alles was ich in das Repro übertrage, kann jeder laden. Ich habe keinen Branch, arbeite noch auf dem master.

Schick doch bitte mal alle Ausgaben, die dabei so entstehen. Einfach nacheinander in einer Konsole ausführen, alles Markieren, Copy und Pest hier hinen

Der Assemble sollte under ~/bin eine Ausführbare datei zasm erstellen. Mal das Verzeichniss ~/bin anlegen bitte, kann sein das ich das im make nicht mache.

Und wenn das alles so wie beschrieben "fehlerfrei" durchgelaufen ist, dann bist du am Ziel.

Es sollten dann unter tty0tty/pts/ ein ausführbares Programm tty0tty haben, dass, wenn Du es startest, zwei pts installiert und diese miteinander verbindet

/dev/pts/1 <==> /dev/pts/2 (oder anderer Nummern)

dann solltest du umter cpmhost ein Programm namens cpmhost haben. Das bitte starten, mit eine der deiden pts als argument

cpmhost /dev/pts/1 z.B

und dann solltest Du unter Z80SIMULATOR noch ein Programm haben, das heist z80sim und dass muss mit der anderen pts als argment gestartet werden.

z80sim /dev/pts/2



Sind diese Programme da und was geben die aus wenn du sie genau so (mit den richtigen pts-nummern) startest ?
--
"Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt." Ein Stein.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
068
25.07.2013, 11:48 Uhr
timetube

Avatar von timetube


Zitat:
hschuetz postete
Hallo Jürgen,
leider ist der gesamte text zu lang für hier...
also nur die Zeilen welche Fehler beinhalten...

ERR equ $FDAF ; = 64943
EMON equ $FFFF ; = 65535

zasm: no errors.
cat obj/monitor.lst | awk -f symbols.awk > src/monitor.inc
cat: obj/monitor.lst: Datei oder Verzeichnis nicht gefundenawk: symbols.awk: line 30:
function strftime never defined
make: *** [src/monitor.inc] Fehler 2
juergen@NKC2:~/cpmonline-code/Z80SIMULATOR$

***********************************************************
CPMHOST

***********************************************************
juergen@NKC2:~/cpmonline-code/cpmhost$ make clean all
Makefile:9: *** set the MONITOR environment for that the CP/M 2.2 should be created. make MONITOR=../Z80SIMULATOR/src for example.. Schluss.
juergen@NKC2:~/cpmonline-code/cpmhost$

Gruß
Hans-Werner

cd cpmhost
make MONITOR=../Z80SIMULATOR/src clean all
#######################################

Du must angeben für welches Target die Bootdisk erstellt werden soll. Hier für den Simulator, der natürlich zuvor erstellt sein muss.



Quellcode:
[[juergen@nadhhlt libZ80]$ make clean
rm ./obj/sim7.o ./obj/sim6.o ./obj/sim5.o ./obj/sim4.o ./obj/sim3.o ./obj/sim2.o ./obj/sim1.o ./obj/disas.o libZ80.a
[juergen@nadhhlt libZ80]$ make
rm ./obj/sim7.o ./obj/sim6.o ./obj/sim5.o ./obj/sim4.o ./obj/sim3.o ./obj/sim2.o ./obj/sim1.o ./obj/disas.o libZ80.a
rm: cannot remove ‘./obj/sim7.o’: No such file or directory
rm: cannot remove ‘./obj/sim6.o’: No such file or directory
rm: cannot remove ‘./obj/sim5.o’: No such file or directory
rm: cannot remove ‘./obj/sim4.o’: No such file or directory
rm: cannot remove ‘./obj/sim3.o’: No such file or directory
rm: cannot remove ‘./obj/sim2.o’: No such file or directory
rm: cannot remove ‘./obj/sim1.o’: No such file or directory
rm: cannot remove ‘./obj/disas.o’: No such file or directory
rm: cannot remove ‘libZ80.a’: No such file or directory
make: [clean] Error 1 (ignored)
######################### OK da keine dateien zum clean vorhanden sind

g++ -c -m64 -pipe -g -fPIC -Wall -W -D_REENTRANT -DLIBZ80_LIBRARY -I/usr/lib64/qt4/mkspecs/linux-g++-64 -I. -I/usr/include -I. -o obj/sim7.o sim7.cpp
g++ -c -m64 -pipe -g -fPIC -Wall -W -D_REENTRANT -DLIBZ80_LIBRARY -I/usr/lib64/qt4/mkspecs/linux-g++-64 -I. -I/usr/include -I. -o obj/sim6.o sim6.cpp
g++ -c -m64 -pipe -g -fPIC -Wall -W -D_REENTRANT -DLIBZ80_LIBRARY -I/usr/lib64/qt4/mkspecs/linux-g++-64 -I. -I/usr/include -I. -o obj/sim5.o sim5.cpp
g++ -c -m64 -pipe -g -fPIC -Wall -W -D_REENTRANT -DLIBZ80_LIBRARY -I/usr/lib64/qt4/mkspecs/linux-g++-64 -I. -I/usr/include -I. -o obj/sim4.o sim4.cpp
g++ -c -m64 -pipe -g -fPIC -Wall -W -D_REENTRANT -DLIBZ80_LIBRARY -I/usr/lib64/qt4/mkspecs/linux-g++-64 -I. -I/usr/include -I. -o obj/sim3.o sim3.cpp
g++ -c -m64 -pipe -g -fPIC -Wall -W -D_REENTRANT -DLIBZ80_LIBRARY -I/usr/lib64/qt4/mkspecs/linux-g++-64 -I. -I/usr/include -I. -o obj/sim2.o sim2.cpp
g++ -c -m64 -pipe -g -fPIC -Wall -W -D_REENTRANT -DLIBZ80_LIBRARY -I/usr/lib64/qt4/mkspecs/linux-g++-64 -I. -I/usr/include -I. -o obj/sim1.o sim1.cpp
sim1.cpp:304:6: warning: unused parameter ‘state’ [-Wunused-parameter]
void z80::nmireq(bool state)
      ^
g++ -c -m64 -pipe -g -fPIC -Wall -W -D_REENTRANT -DLIBZ80_LIBRARY -I/usr/lib64/qt4/mkspecs/linux-g++-64 -I. -I/usr/include -I. -o obj/disas.o disas.cpp
ar cqs libZ80.a ./obj/sim7.o ./obj/sim6.o ./obj/sim5.o ./obj/sim4.o ./obj/sim3.o ./obj/sim2.o ./obj/sim1.o ./obj/disas.o
############################# ALSO die libz80.a wurde erstellt.

[juergen@nadhhlt libZ80]$ cd ..
[juergen@nadhhlt cpmonline-code]$ cd Z80SIMULATOR/
[juergen@nadhhlt Z80SIMULATOR]$ make clean
rm -f src/monitor.inc monitor.bin z80sim
rm -f *~ core *.core  ./obj/*.bin ./obj/*.lst ./obj/*.o
[juergen@nadhhlt Z80SIMULATOR]$ make all
~/bin/zasm -vw2b -I ./src -i "./src/monitor.asm" -o "monitor.bin" -l ./obj/monitor.lst
  zasm: "./src/monitor.asm", "monitor.bin", "./obj/monitor.lst"
  zasm: no errors.
cat obj/monitor.lst  | awk -f symbols.awk > src/monitor.inc
g++ -c -pipe -g -Wall -I ../libZ80  -o "./obj/z80emu.o" "./src/z80emu.cpp"
g++  -o z80sim ./obj/z80emu.o -L ../libZ80 -lZ80 -lpthread
#################### OK, der Simulator und die monitor.inc wurden erstellt.

[juergen@nadhhlt cpmhost]$ make MONITOR=../Z80SIMULATOR/src all
~/bin/zasm -vw2b -I ../Z80SIMULATOR/src -i "cpm22/bios.asm" -o ../Z80SIMULATOR/src/bins/bios.bin -l ../Z80SIMULATOR/src/bins/bios.lst
  zasm: "cpm22/bios.asm", "../Z80SIMULATOR/src/bins/bios.bin", "../Z80SIMULATOR/src/bins/bios.lst"
  zasm: no errors.
~/bin/zasm -vw2b -I ../Z80SIMULATOR/src -i "cpm22/boot.asm" -o ../Z80SIMULATOR/src/bins/boot.bin -l ../Z80SIMULATOR/src/bins/boot.lst
  zasm: "cpm22/boot.asm", "../Z80SIMULATOR/src/bins/boot.bin", "../Z80SIMULATOR/src/bins/boot.lst"
  zasm: no errors.
~/bin/zasm -vw2b -I ../Z80SIMULATOR/src -i "cpm22/cpm22.asm" -o ../Z80SIMULATOR/src/bins/cpm22.bin -l ../Z80SIMULATOR/src/bins/cpm22.lst
  zasm: "cpm22/cpm22.asm", "../Z80SIMULATOR/src/bins/cpm22.bin", "../Z80SIMULATOR/src/bins/cpm22.lst"
  zasm: no errors.
cp -f ../Z80SIMULATOR/src/bins/boot.bin     disks/drivea.cpm
cat  ../Z80SIMULATOR/src/bins/cpm22.bin >> disks/drivea.cpm
cat  ../Z80SIMULATOR/src/bins/bios.bin  >> disks/drivea.cpm
dd if=../Z80SIMULATOR/src/drivea.cpm bs=1 skip=6656     >> disks/drivea.cpm
249600+0 records in
249600+0 records out
249600 bytes (250 kB) copied, 0.327935 s, 761 kB/s
echo disks/drivea.cpm done
disks/drivea.cpm done
################### OK, der cpmhost und die BootDisk für das angegebene TARGET wurden erstellt.

g++ -pipe -g -Wall  src/cpm22host.cpp -o "cpmhost"
[juergen@nadhhlt cpmhost]$
[juergen@nadhhlt cpmhost]$ cd ..
[juergen@nadhhlt cpmonline-code]$ cd tty0tty-1.1/
[juergen@nadhhlt tty0tty-1.1]$ make
make -C pts
make[1]: Entering directory `/home/juergen/cpmonline/cpmonline-code/tty0tty-1.1/pts'
gcc -Wall -O -g -D_GNU_SOURCE tty0tty.c -o tty0tty
cp tty0tty ~/bin
make[1]: Leaving directory `/home/juergen/cpmonline/cpmonline-code/tty0tty-1.1/pts'
[juergen@nadhhlt tty0tty-1.1]$


sieht es im Ergebnis genau so aus, also auf Dein Entwicklersystem bezogen natürlich.

Mach vorher bitte noch mal ein update vom Server, ich habe das Debug Verzeichnis bei libz80.a raus geschmissen, da hatte ich einen Link, der ist bei dir sicher auch nicht.


Na und nun, alles GUT

j.
--
"Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt." Ein Stein.

Dieser Post wurde am 25.07.2013 um 11:55 Uhr von timetube editiert.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
069
25.07.2013, 13:54 Uhr
hschuetz

Avatar von hschuetz

Hallo Jürgen,
normalerweise würde ich schon das Handtuch schmeissen....
ZASM wird auch nicht ins Verzeichnis kopiert... von Hand gemacht

meine comp.sh
(userverzeichnis)
cd
cd cpmonline-code/zasm*
make clean all
cd ..
cd libZ80
make clean all
cd ..
cd tty*
make clean all
cd ..
cd cpmhost
make MONITOR=../Z80SIMULATOR/src clean all

juergen@NKC2:~$ ./comp.sh
make: *** Keine Regel, um »clean« zu erstellen. Schluss.
rm ./obj/sim7.o ./obj/sim6.o ./obj/sim5.o ./obj/sim4.o ./obj/sim3.o ./obj/sim2.o ./obj/sim1.o ./obj/disas.o libZ80.a
g++ -c -m64 -pipe -g -fPIC -Wall -W -D_REENTRANT -DLIBZ80_LIBRARY -I/usr/lib64/qt4/mkspecs/linux-g++-64 -I. -I/usr/include -I. -o obj/sim7.o sim7.cpp
g++ -c -m64 -pipe -g -fPIC -Wall -W -D_REENTRANT -DLIBZ80_LIBRARY -I/usr/lib64/qt4/mkspecs/linux-g++-64 -I. -I/usr/include -I. -o obj/sim6.o sim6.cpp
g++ -c -m64 -pipe -g -fPIC -Wall -W -D_REENTRANT -DLIBZ80_LIBRARY -I/usr/lib64/qt4/mkspecs/linux-g++-64 -I. -I/usr/include -I. -o obj/sim5.o sim5.cpp
g++ -c -m64 -pipe -g -fPIC -Wall -W -D_REENTRANT -DLIBZ80_LIBRARY -I/usr/lib64/qt4/mkspecs/linux-g++-64 -I. -I/usr/include -I. -o obj/sim4.o sim4.cpp
g++ -c -m64 -pipe -g -fPIC -Wall -W -D_REENTRANT -DLIBZ80_LIBRARY -I/usr/lib64/qt4/mkspecs/linux-g++-64 -I. -I/usr/include -I. -o obj/sim3.o sim3.cpp
g++ -c -m64 -pipe -g -fPIC -Wall -W -D_REENTRANT -DLIBZ80_LIBRARY -I/usr/lib64/qt4/mkspecs/linux-g++-64 -I. -I/usr/include -I. -o obj/sim2.o sim2.cpp
g++ -c -m64 -pipe -g -fPIC -Wall -W -D_REENTRANT -DLIBZ80_LIBRARY -I/usr/lib64/qt4/mkspecs/linux-g++-64 -I. -I/usr/include -I. -o obj/sim1.o sim1.cpp
sim1.cpp:304:6: warning: unused parameter âstateâ [-Wunused-parameter]
g++ -c -m64 -pipe -g -fPIC -Wall -W -D_REENTRANT -DLIBZ80_LIBRARY -I/usr/lib64/qt4/mkspecs/linux-g++-64 -I. -I/usr/include -I. -o obj/disas.o disas.cpp
ar cqs libZ80.a ./obj/sim7.o ./obj/sim6.o ./obj/sim5.o ./obj/sim4.o ./obj/sim3.o ./obj/sim2.o ./obj/sim1.o ./obj/disas.o
make -C pts clean
make[1]: Entering directory `/home/juergen/cpmonline-code/tty0tty-1.1/pts'
rm -rf tty0tty *.o core
make[1]: Leaving directory `/home/juergen/cpmonline-code/tty0tty-1.1/pts'
make -C pts
make[1]: Entering directory `/home/juergen/cpmonline-code/tty0tty-1.1/pts'
gcc -Wall -O -g -D_GNU_SOURCE tty0tty.c -o tty0tty
tty0tty.c: In function âcopydataâ:
tty0tty.c:158:4: warning: format â%ldâ expects argument of type âlong intâ, but argument 3 has type âssize_tâ [-Wformat]
tty0tty.c:158:4: warning: format â%ldâ expects argument of type âlong intâ, but argument 4 has type âssize_tâ [-Wformat]
cp tty0tty ~/bin
make[1]: Leaving directory `/home/juergen/cpmonline-code/tty0tty-1.1/pts'
rm -f ../Z80SIMULATOR/src/bins/bios.bin ../Z80SIMULATOR/src/bins/boot.bin ../Z80SIMULATOR/src/bins/cpm22.bin ./obj/cpm22host.o
rm -f *~ core *.core
make: *** Keine Regel vorhanden, um das Target »../Z80SIMULATOR/src/monitor.inc«,
benötigt von »../Z80SIMULATOR/src/bins/bios.bin«, zu erstellen. Schluss.
juergen@NKC2:~$

weiter komme ich nicht...
aktuelle Dateien von vor 5 Minuten
vielleicht versuchst du das mal auf meiner Maschine....
so langsam verliere ich die Lust.....
Gruß
Hans-Werner
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
070
25.07.2013, 17:07 Uhr
timetube

Avatar von timetube

Hi Hans-Werner,

das mit der Lust kann ich gut nachvollziehen.

Wie gesagt, das Target, in diesem Fall Z80SIMULATOR, muss vor dem cpmhost gebaut werden.
Die fehlende Datei wird beim Bauen dieses Targets generiert.

also ändere das shell script bitte so ab, das es vor cpmhost das Target baut

cd ..
cd ./Z80SIMULATOR
make clean
make all
cd ..
u.s.w.

j.
--
"Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt." Ein Stein.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
071
25.07.2013, 19:14 Uhr
hschuetz

Avatar von hschuetz

Hallo Jürgen
Geht nicht...
juergen@NKC2:~/cpmonline-code/Z80SIMULATOR$
juergen@NKC2:~/cpmonline-code/Z80SIMULATOR$ make clean
rm -f src/monitor.inc monitor.bin z80sim
rm -f *~ core *.core ./obj/*.bin ./obj/*.lst ./obj/*.o
juergen@NKC2:~/cpmonline-code/Z80SIMULATOR$ make all
~/bin/zasm -vw2b -I ./src -i "./src/monitor.asm" -o "monitor.bin" -l ./obj/monitor.lst
/home/juergen/bin/zasm: 4: /home/juergen/bin/zasm: Syntax error: "(" unexpected
make: *** [monitor.bin] Fehler 2
juergen@NKC2:~/cpmonline-code/Z80SIMULATOR$

versuch du...
für heut habe ich die Nase voll.....
Gruß
Hans-Werner
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
072
26.07.2013, 01:05 Uhr
timetube

Avatar von timetube

gebe mal im Verzeichnis ~/cpmonline-code/Z80SIMULATOR$
den Befehl

~/bin/zasm -vw2b -I ./src -i "./src/monitor.asm" -o "monitor.bin" -l ./obj/monitor.lst

ein und sende die Ausgabe. Ohne Dein Script, so auf der Kommandozeile!.

Frage mich wirklich wer die Zeile

/home/juergen/bin/zasm: 4: /home/juergen/bin/zasm: Syntax error: "(" unexpected

bei Dir aus gibt. Es befinden sich in Zeile vier nur Kommentare.der Assembler kann dort nichts an-meckern wollen.

j.
--
"Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt." Ein Stein.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
073
26.07.2013, 07:19 Uhr
hschuetz

Avatar von hschuetz

Hallo Jürgen,

geht

juergen@NKC2:~/cpmonline-code/Z80SIMULATOR$ ~/bin/zasm -vw2b -I ./src -i "./src/monitor.asm" -o "monitor.bin" -l ./obj/monitor.lst
zasm: "./src/monitor.asm", "monitor.bin", "./obj/monitor.lst"
zasm: no errors.
juergen@NKC2:~/cpmonline-code/Z80SIMULATOR$

Gruß
Hans-Werner
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
074
26.07.2013, 10:27 Uhr
timetube

Avatar von timetube

Ja, war, habe heute Nacht mal auf deinem System alles zum Laufen gebracht. Siehe readme.txt in meinem home Verzeichnis. Werde die Makefiles so anpassen, das per Schalter 32/64 Bit compiliert werden können. Du könntest auch die fehlenden 64bit libstd++ u.s.w. noch nachinstallieren und unbeding auch den den gdb/ddd

Dein awk ist auch total veraltet, der unterstützt noch keine Time-funktionen, warum auch die monitor.inc nicht erstellt wurde.

Für die Zukunft ist es immer besser ALLE Ausgaben bei Problemen anzuzeigen, wir hätten uns sicher einiges an Zeit und Nerven sparen können

Aber nun gut, es geht, ich hatte CP/M 2.2 in der Simulation am laufen gestern Nacht.

Pass auf, meine Änderungen gehen verloren, wenn Du ein Update machst. Warte bis ich das auf dem Server berücksichtigt habe.

Mit dem awk wird es Schwirig, da möchte ich Dich bitten dein Developer-system oder komplettes Linux mal auf den aktuellen Stand zu bringen.

j.
--
"Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt." Ein Stein.

Dieser Post wurde am 26.07.2013 um 10:30 Uhr von timetube editiert.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] [ 2 ] -3- [ 4 ]     [ Softwareprojekte ]  



gaby.de

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