042
05.07.2013, 14:58 Uhr
timetube
|
Hi Hans-Werner,
keine Panik, das ist zu Anfang eines Projektes völlig normal, wie müssen alle erst einmal auf synchronisiert sein )
Also mal sehen:
Zitat: | hschuetz postete Hallo Jürgen, heute habe ich mich mit zasm beschäftigt.... root@NKC2:~/cpmonline-code/cpm22# make g++ -c -pipe -g -Wall -I ../libZ80 -o "./obj/Z80CPM.o" "./src/Z80CPM.cpp" g++ -o CPM22 ./obj/Z80CPM.o -L ../libZ80/Debug -lZ8k0 -lpthread /usr/bin/ld: cannot find -lZ80
|
Hier wird die libZ80.a nicht gefunden. Das Projekt hängt von dieser LIB ab. Ich habe im Eclipse diese Abhängigkeit gesetzt. (Hätte ich wohl besser im Makefile machen sollen), so dass die, wenn nicht vorhanden oder veraltet, automatisch erst gebaut wird. Hier musst Du erst das libZ80 Projekt (Make) bauen.
Zitat: | collect2: error: ld returned 1 exit status make: *** [CPM22] Fehler 1 root@NKC2:~/cpmonline-code/cpm22#
hier das Ergebnis!??? (Debian Linux) und auf dem Raspberry läuft anscheinend alles schief:
root@rashws:/cpmonline/cpmonline-code/cpm22# make ~/bin/zasm -vw2b -i "./src/bios.asm" -o "./obj/bios.bin" -l ./obj/bios.lst zasm: "./src/bios.asm", "./obj/bios.bin", "./obj/bios.lst" JR Z, WOUT0 ; NO: Wai for TX Free ^ ***ERROR***: offset out of range JR Z, WIN ; NO: Wai for TX Free ^ ***ERROR***: offset out of range DJNZ SNEXT ; send byte if any ^ ***ERROR***: offset out of range DJNZ RNEXT ; if more then next byte ^ ***ERROR***: offset out of range JR NZ,CONST ^ ***ERROR***: offset out of range JR Z,CONIN ^ ***ERROR***: offset out of range JR NZ,CONIN ^ ***ERROR***: offset out of range JR NZ,CONOUT ^ ***ERROR***: offset out of range JR NZ,LIST ^ ***ERROR***: offset out of range JR NZ,LISTST ^ ***ERROR***: offset out of range JR NZ,PUNCH ^ ***ERROR***: offset out of range JR NZ,READER ^ ***ERROR***: offset out of range JR NZ,DSKERR ^ ***ERROR***: offset out of range JR NZ,DSKERR ^ ***ERROR***: offset out of range zasm: 14 errors. zasm: (aborted) make: *** [bios.bin] Error 14 root@rashws:/cpmonline/cpmonline-code/cpm22#
hast du eine Idee?? Gruß Hans-Werner |
Das der Assembler zwar den Kommunikation Kern iodrv.asm inkludiert, dann aber die relativen Sprünge alle als nicht innerhalb von -/- 128 Byte erkennen will, das ist in der Tat merkwürdig.
Gerade der JR Z, WOUT0 ; NO: Wai for TX Free ^ ***ERROR***: offset out of range ist nur wenige Bytes zurück.
Hoffe der Assembler hat da keine Macke in der Berechnung der relativen Adressen. Irgend was war da mal, kann mich aber nicht mehr konkret erinnern.
Versuch mal den folgen code zu übersetzen z.B. gespeichert als test.asm und zeig mal das Listfile und die Assembler Version, wie im folgendem Beispiel.
Quellcode: | ORG 100h
FOO: JR BAR DS 120 BAR: JR FOO
#END
[juergen@linux ~]$ cd import/tmp/ [juergen@linux tmp]$ ~/bin/zasm -vw2b -i test.asm -o test.bin -l test.lst zasm: "test.asm", "test.bin", "test.lst" zasm: no errors. [juergen@linux tmp]$ cat test.lst
0000: #target rom ; ((inserted by zasm)) 0000: #code 0,$10000 ; ((inserted by zasm)) 0100: ORG 100h 0100: 0100: 1878 FOO: JR BAR 0102: FFFFFFFF ... 017A: DS 120 017A: 1884 BAR: JR FOO 017C: 017C: #END
; +++ defined symbols +++ FOO equ $0100 ; = 256 BAR equ $017A ; = 378
[juergen@linux tmp]$ [juergen@linux tmp]$ ~/bin/zasm --help ______________________________________________________________________________ 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
|
Weiter Fragen wären: - Welchen code-stand hast Du genommen, den von heute? - Und hast Du am bios.asm oder iodrv.asm was geändert? - Erzeugt der Assembler ein List-File, dann bitte mal zeigen?
j. -- "Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt." Ein Stein. Dieser Post wurde am 05.07.2013 um 15:03 Uhr von timetube editiert. |