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 ]
025
28.06.2013, 11:50 Uhr
timetube

Avatar von timetube

Hi Hans-Werne

nö, einen voll ausgeprägten Monitor braucht CP/M nicht. Es reicht wie gesagt wenn die ROM-Codes in der lage sind 128byte von der RS232 nach Adresse 0 zu laden.

Schkön were es wenn die RS232 dann bereits mit den späteren parametrn initialisiert wurde, dann könnte mein Demo-Boot-Code fast 1:1 laufen. Es fehlte dann nur noch das Sicherungsprotokoll im CBIOS, um die Datenübertragung fehlerfrei zu halten.

j
--
"Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt." Ein Stein.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
026
28.06.2013, 13:21 Uhr
hschuetz

Avatar von hschuetz

Hallo Jürgen,
also beim NKC ist ein 6551 verbaut, die kann RTS/CTS... ich schätze mal mit 9600 Baud... bem MC ist allerdings eine Z80 SIO drin mit 2 Schnittstellen
Eigentlich brauch man dann ja nur ein paar Routinen schreiben. Allerdings muss das dann in dein Bios hinein.
Leider weigert sich mein M80 noch... also muss ich wohl doch noch mal sehen..
Gruß
Hans-Werner
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
027
28.06.2013, 13:42 Uhr
timetube

Avatar von timetube

Ja, es ist in der Tat denkbar einfach, das sagte ich ja auf'n Fest auch.

SIO (6551) initialisieren, CMD_BOOT Tooken senden und 128byte nach 0000h laden und die anspringen. Das kann jeder Monitor, was zum test ersteinmal reicht.

Und ja, das CBIOS ist nur eine Anregung, daran sollten wir gemeinsam arbeiten, das richtig gut zu machen, so dass alle Primitiven sauber und fehlerfrei über die RS232 gehen.

Es ist übrigens nicht von mir, wie das CP/M 2.2 ja auch nicht. Ich habe es auch bloß für meine Projekte angepasst. Ein solches CBIOS haben die Hersteller, angepasst auf ihre Hardware, derzeit mit ausgeliefert. Das und CPM 2.2 natürlich auch, das ist aber ja Hardware unabhängig, musste immer nur für die jeweilige Speicherkonfiguration realociert werden.

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

Avatar von hschuetz

Hallo Jürgen,
machen wir nun ein Hardwarehandshake rts/cts? und 9600 baud fest?
Dann bastel ich mal für meine Kiste die Startsequenz....
Gruß
Hans-Werner
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
029
28.06.2013, 21:19 Uhr
timetube

Avatar von timetube

Ich wäre schon dafür.

Ich bin gerade dabei einen Kommunikationskern zu schreiben für mein System. Das inkludiere ich dann in das bios.asm, boot.asm

Das Teil sieht so aus:


Quellcode:
; Ports of Z80SIO
UART0_RBR    equ 00C0h    ; R: Receive Buffer Register
UART0_THR    equ    00C0h   ; W: Transmit Holding Register

UART0_BRG_L    equ    00C0h    ; RW: Baud Rate Generator Register—Low Byte   02h
UART0_BRG_H equ    00C1h    ; RW: Baud Rate Generator Register—High Byte  00h

UART0_FCTL    equ    00C2h ; FIFO Control Register 00
UART0_LCTL    equ    00C3h ; Line Control Register 00
UART0_MCTL    equ    00C4h ; Modem Control Register 00
UART0_LSR    equ    00C5h ; Line Status Register 60

UART0_MSR    equ    00C6h
UART0_SPR    equ    00C7h

PB_ALT1     equ 009Ch
PB_ALT2     equ 009Dh
PD_DR        equ 00A2h


; Z80 SIO Status bits
UART_LSR_THREMPTY   EQU    20h        ; eZ80 Transmit Register Ready
UART_LSR_DATA_READY EQU    01h        ; eZ80 Rx Data Ready

; SIO Parameter
UART_BPS              EQU    57600    ; Baudrate
UART_DATA_BITS   EQU    8        ; Databits
UART_PARITY         EQU    0        ; No Parity
UART_STOP_BITS  EQU    1        ; 1 Stopbit
SysClkFreq        EQU 50            ; eZ80 Takt 50MHz
BRG                EQU SysClkFreq/(16 * UART_BPS) ;Baudrate predivisor
LCTL_DLAB            EQU    80h        ;

; INIT SIO
SIOINIT:
    ; Do what ever has to be done here :)
     RET

WAITFOR:
     PUSH BC
     LD   C,A
         WAITFOR1:
     IN    A, (UART0_LSR)    ; Read SIO status register
     AND A,C
     JR  Z,WAITFOR1
     POP  BC
     RET

    ; Send byte register C to PC
CPM2PC:
    LD  A, UART_LSR_THREMPTY
     CALL WAITFOR
    LD   A,C
     OUT  (UART0_THR),A    ; send byte
    RET

; Send command C to PC and wait for echo
; i-C= command
; Z = OK
PCCMD:
    CALL CPM2PC
; wait for and read byte from PC
PC2CPM:
    LD  A, UART_LSR_DATA_READY
     CALL WAITFOR
    IN  A,(UART0_RBR)
    CP A,Co
     RET

; Send Comman A and byte C to PC.
; i-A= command
; i-C= value
; o-A= result
PCCMDC:
    PUSH BC
    LD  C,A
    CALL PCCMD
    POP BC
    RET NZ
    JR  CPM2PC

Meine API ist also

INITSIO SIO einrichten.
CPM2PC c=byte to be sent to PC
PC2CPM a=byte reseived from PC
PCCMD c=command to be sent to PC
PCCMD a=command c and one parameter to be sent to PC

Wir sollten die aber noch um zwei primitiven erweitern

SENDBLK einen 128byte block zum PC senden und
RECVBLK einen 128byte block vom PC empfangen.

Wenn Du es auch so machst, also eine Datei die diese API für Dein Target implemnteiret includierst, könnten wir das CBIOS und den BOOT-LOADER generisch halten. Jeder includiert seinen Com-Kern )
--
"Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt." Ein Stein.

Dieser Post wurde am 28.06.2013 um 21:27 Uhr von timetube editiert.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
030
02.07.2013, 08:53 Uhr
hschuetz

Avatar von hschuetz

Hallo Jürgen,
man man ist das lange her mit dem Programmieren...
Ich hab da mal was programmiert... allerdings weiß ich nicht obs funktioniert...
zunächst ohne handshake... kannst du da mal drüberschauen?
Leider habe ich deine Email nicht...schicke per PM
Gruß
Hans-Werner
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
031
02.07.2013, 20:50 Uhr
timetube

Avatar von timetube

Gerne, kann aber im Repository nichts finden, wo hast Du es denn ?
--
"Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt." Ein Stein.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
032
02.07.2013, 21:28 Uhr
hschuetz

Avatar von hschuetz

Hallo Jürgen,
hab ich per PM hier geschickt... wie geht das mit dem Repository?
Mit dem zasm muss ich auch nochmal sehen...wie ich das wieder hin bekomme.
Gruß
Hans-Werner
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
033
03.07.2013, 21:44 Uhr
timetube

Avatar von timetube

Ja, so sollte es gehen.
Wie kommst Du auf ORG 100h ? das ist normaler weise die CP/M TPA

Im Prinzip ist es egal wo der ROM-Bootstrap liegt, natürlich nur wenn an die Stelle kein CP/M oder CBIOS geladen werden muss. Normaler Weise hat so ein System ja das CBIOS fest im ROM. Oft zusammen mit einem Minitor-ROM, welcher ebenfalls diese CBIOS Funktionen für den IO verwendet.

Dieses CBIOS kann CP/M ja direkt an die passende Adresse laden. Wer kein komplettes CBIOS im ROM haben will oder kann, muss wenigstens den von Dir entwickelten Bootstrap haben, um den auf Sektor 1 der Systemdiskette befindlichen BootSector zu laden und auszuführen. Dieser läd dann das CBIOS, welches wiederum das CP/M läd.

CBIOS und CP/M haben feste, für das System gültige Adressen. Der Bootsector/Loader weiß wohin und wie vile Sektoren das CBIOS hat, das CBIOS kennt sein CP/M.

Dein Bootstrab muss nur wissen wohin der Bootsektor 128 byte zu laden ist. Das ist bei meinem Code Adresse 0000h (nicht wie Du nach 1000h)
Ich habe die Adresse gewählt, weil ja die Z80 bei 0000h los legt nach einem RESET und eigentlich alle Systeme an diese Adresse ROM mappen nach einem RESET.

Dieses ROM kopierte in der Regel das CBIOS vom ROM nach oben ins Ram und springt dann zum BOOT des CBIOS. Da wurde das untere ROM mir RAM überlagert (CP/M will da RAM sehen) und das CP/M unmittelbar unterhalb des CBIOS geladen.

Kleiner Tipp, die Codefolge

DEC B
JR NZ,dahin

kann durch

DJNZ dahin

ersetzt werden )


Quellcode:
;*******************************************************************************
; Sende einen Block 128 byte
; Buffer 1000h bis 1080h
; Register A HL B C
SENDBLK:
ld hl 1000h ; Daten liegen ab Adresse 1000h
ld B,80h ; übertrage 128 byte (80h)
loop1:
ld a,(hl)
ld c,a
call cpm2pc
inc hl
djnz loop2
ret
;*******************************************************************************

;*******************************************************************************
; Empfange einen 128 byte Block
; buffer 1000h bis 1080h
; Register A HL B
RECVBLK:
ld hl 1000h
ld b,80h
loop2:
call pc2cpm
ld (hl),a
inc hl
djnz loop2    
ret
;*******************************************************************************

Dann die Verwendung von GIT also dem Repository. Ich werde mal sehen ob ich da so eine minimal Bedienungsanleitung zusammen kopiert bekomme.

Aber ihr könnt ja schon mal unsere Projektfrontpage https://sourceforge.net/projects/cpmonline/ mit Bildern und Daten eurer Systemen zu pflastern. Ich hab ja meins schon mal spartanisch hin gemacht

Vielleicht sollten wir sogar die Foren-Beiträge ins Wiki https://sourceforge.net/p/cpmonline/wiki/Home/ aufnehmen )

Nur Mut und nicht verzagen wenn's nicht auf Anhieb alles flutscht, wir wollen Spaß, kein Stress

Hi do6ps lebst Du noch in Saus und Braus ?))

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

Dieser Post wurde am 03.07.2013 um 21:48 Uhr von timetube editiert.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
034
03.07.2013, 23:13 Uhr
hschuetz

Avatar von hschuetz

Hallo Jürgen,
die Adressen basieren auf ein CPM system.. d.h. ich entwickel das Programm auf meinem MC-Computer... Also org 100h mach also zu testen Sinn, genau so wie die Buffer Adresse 1000h... es muss dann angepasst werden...
Zitat
DEC B
JR NZ,dahin
kann durch
DJNZ dahin
ersetzt werden )

Da war ich mir nicht so sicher...aber probieren kann ich das ja.

Sag mal zum Projekt... brauche ich 2 serielle Schnittstellen? oder wolltest du das mit einer abhändeln?
Im Moment hab ich da Probleme mit der Hardware...muß ich mal sehen

Gruß

Hans-Werner
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
035
03.07.2013, 23:44 Uhr
timetube

Avatar von timetube

Hi Hans-Werner.

Es reichte eine, weil CP/M ja immer nur eine Aktion, DiskIO oder Terminal ecc zur Zeit aus führt.

Dadurch, dass immer Kommandos mit Parametern ausgetauscht werden und der PC eine echte Server-Funktion hat (Nur eingehende Service-Request), würde durch parallele Hardware nichts gewonnen. Es sei den ,man möchte direkt ein Terminal anschließen und den PC nur die Disk und Puncher machen lassen, dann sollte man den CONSTA, CONIN,CONOUT native auf eine exklusive Schnittstelle lenken. Das sollte man sogar so machen, wenn man zwei Serielle hat.


j.
--
"Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt." Ein Stein.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
036
03.07.2013, 23:52 Uhr
hschuetz

Avatar von hschuetz

Hallo Jürgen,
eine Schnittstelle ist schon Ok, vereinfacht die Sache. Wird die Software denn auch mit windofs laufen?
gruß
Hans-Werner
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
037
04.07.2013, 13:26 Uhr
timetube

Avatar von timetube

Also der CPU Simulator verwendet pthreads, das hatte ich schon mal auf CreateThread(blabla) von Windows umgestellt. Der geht also sicher zu portieren.

Die Host-Software ist so trivial, da gibt es sicher auch kein Problem.

Die Antwort ist als JA, nur eben es muss einer sich dran machen zu Portieren und zu Testen ))

Aber ich möchte gerne libDSK verwenden, um direkt auf ein Linux Filesystem zugreifen zu können.

Damit hab ich auch schon experimentiert. Ausgerechnet dieser LibDSK Driver für filesystem-emulation ist aber noch so buggy, dass der im Moment noch nicht wirklich stabil verwendbar ist.

Da bin ich auch noch mit befasst.

LibDSK zu portieren, so das noch nicht irgendwo geschehen, ist sicher noch mal 'ne ganz andere Hausnummer.

Was mir noch eingefallen ist. Wenn Du eh auf einem CP/M entwickelst, dann kannst Du doch das CBIOS (mit RS232 IO) mal für Dein System compilieren und mit SysGen eine CP/M Bootdisk erstellen. Davon machst Du mit den gängigen Tools dann ein Image und probierst das mal aus.

j.

PS: Ich checke heute Abend/Morgen mein Zeugs noch mal ein, damit sollte es nach Anpassen der RS232-Ports und INIT auch bei Dir gehen
--
"Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt." Ein Stein.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
038
04.07.2013, 14:00 Uhr
hschuetz

Avatar von hschuetz

Hallo Jürgen,
wäre es denn machbar das die Hostsoftware auf einem Raspberry Pi läuft?
(serielle über USB)

Also, zu meinem CPM System.... da habe ich mehrere Biosvarianten....
verschiedene CCP's und BDOS Varianten.... ausserdem schimpft der M80 über dein CBIOS... also möchte ich zunächst auf deiner Schiene bleiben. Ich will mal sehen ob ich meinen Raspberry dazu bewegen kann, meine Entwicklermaschine zu werden um mit deiner ähnlich zu sein. Evtl kannst du dann ja helfen (SSL Zugang).
Meine Hardwareprobleme habe ich heute gelöst... 128byte vom PC zum Z80 und zurück erfolgreich übertragen...allerdings ohne Handshake.
Gruß
Hans-Werner
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
039
04.07.2013, 17:26 Uhr
DO6SP



Hallo Leute,

ich wollte mich nur mal melden.
Ich war eine Woche in Friedrichshafen, und hatte keine Internetaktivitäten.
Ihr wart ja ganz schön fleißig, das muss ich jetzt erstmal lesen und verdauen.

Gruß
Patrick
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
040
05.07.2013, 08:56 Uhr
hschuetz

Avatar von hschuetz

Hallo Patrick,
keine Panik...sind nur die Anfänge...
Gruß
Hans-Werner
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
041
05.07.2013, 10:19 Uhr
hschuetz

Avatar von hschuetz

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 -lZ80 -lpthread
/usr/bin/ld: cannot find -lZ80
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

Dieser Post wurde am 05.07.2013 um 10:19 Uhr von hschuetz editiert.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
042
05.07.2013, 14:58 Uhr
timetube

Avatar von 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.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
043
05.07.2013, 23:45 Uhr
hschuetz

Avatar von hschuetz

Hallo Jürgen,
ich habe nochmal das aktuelle geladen und alles unter http://hwschuetz.thtec.org/cpmonline.zip zusammengepackt (linux.txt die ausgabe von Linux) und die .lst Files. Anscheinend fehlt die Datei lZ80!??
Ich habe keine Änderungen gemacht!
Gruß
Hans-Werner
ps beim Raspberry gibt es Probleme in den Liberys beim compilieren von ZASM...
Also läuft so nicht....
Gruß
Hans-Werner
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
044
06.07.2013, 01:01 Uhr
timetube

Avatar von timetube

Hi Hans-Werner

die commanline optionen -L ../libZ80/Debug -lZ80 werden an del Linker weiter gereicht.

-L ../libZ80/Debug = Suche auch da nach Libraries und

-lZ80 = binde die Library libZ80.[ao]

das lib vorweg und das .o (shared) oder .a (statisch) lässt man dabei weg.


Du müsstest also erst einmal diese libZ80.a bauen. Dazu in das Projekt libZ80 wechseln und dort das make ausführen )

Ansonsten sieht es doch prima aus.

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

Dieser Post wurde am 06.07.2013 um 01:02 Uhr von timetube editiert.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
045
06.07.2013, 14:23 Uhr
timetube

Avatar von timetube

Hi habe noch mal ein paar Korreckturen eingespielt.

Habt Ihr Euch eigentlich schon für Änderungen incorporated ?

Einfach auf die Seite

https://sourceforge.net/projects/cpmonline/

gehen und unter Punkt SUBSCRIBE FOR UPDATES
eintragen.

Habe auch mal ein Bild der laufenden Emulation von Heute hinzugefügt.

Es sollten nun "eigentlich" gehen, wenn man ein 64K System hat.

a: Die SIOINIT anpasst und
b: Die Portdefinitionen anpasst und
c: Die Bitmasken für das SIO status register anpasst.


Mit einem Monitor einfach das erstellt CBIOS ab Adresse F900h laden und in den CBIOS BOOT (F900h) einspringen. Oder noch einfacher.

Den Minimonitor (Bootloader) nach Adresse 0000h Laden und bei 0000h einspringen )
Dazu muss das Diskimage ./disk/drivea.cpm allerdings mit eurem Systemspuren gepatched sein, das MAKE also bis zum ende durchgelaufen sein.

Viel Spaß den ihr wisst ja was "eigentlich" bedeutet oder ))

Schönes Wochenende Euch und scheut Euch nicht unser Projekt auf sourceforge mit Infos, Bilder u.s.w. zu verzieren.

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

Dieser Post wurde am 06.07.2013 um 14:30 Uhr von timetube editiert.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
046
11.07.2013, 07:04 Uhr
hschuetz

Avatar von hschuetz

Hallo Jürgen,
die Probleme konnte ich bisher nicht lösen..leider habe ich deine Emailadresse nicht...
hier nochmal der Makelauf vom CPM22, die Lib habe ich vorher natürlich compiliert.
root@NKC2:~/cpmonline-code/cpm22# make
mkdir -p ./obj
~/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"
zasm: no errors.
echo SECTS equ \(\( `sed -ne 's/BEGDAT[^=]\+[^0-9]\+\([0-9]\+\)/\1/p' ./obj/bios .lst` - CPMSTART + 127 \) \/ 128 \) > src/boot.inc
~/bin/zasm -vw2b -i "./src/cpm22.asm" -o "./obj/cpm22.bin" -l ./obj/cpm22.lst
zasm: "./src/cpm22.asm", "./obj/cpm22.bin", "./obj/cpm22.lst"
zasm: no errors.
~/bin/zasm -vw2b -i "./src/boot.asm" -o "./obj/boot.bin" -l ./obj/boot.lst
zasm: "./src/boot.asm", "./obj/boot.bin", "./obj/boot.lst"
zasm: no errors.
~/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.
cp ./obj/boot.bin cpm22.img
head --bytes=5632 ./obj/cpm22.bin >> cpm22.img
cat ./obj/bios.bin >> cpm22.img
echo cpm22.img done
cpm22.img done
head --bytes=6656 cpm22.img > tmp.sys
dd if=disks/drivea.cpm of=tmp.dat bs=1 skip=6656
249600+0 Datensätze ein
249600+0 Datensätze aus
249600 Bytes (250 kB) kopiert, 2,53123 s, 98,6 kB/s
cat tmp.sys tmp.dat > tmp.dsk
mv disks/drivea.cpm disks/drivea.cpm.bak
mv tmp.dsk disks/drivea.cpm
make: *** Keine Regel vorhanden, um das Target »../libZ80/Debug/libZ80.a«,
benötigt von »Z80CPM.o«, zu erstellen. Schluss.
root@NKC2:~/cpmonline-code/cpm22#

also das mit der LIBz80 haut nicht hin..
Gruß
Hans-Werner
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
047
11.07.2013, 11:26 Uhr
timetube

Avatar von timetube

ZUSATZ:
OK, die lib hast Du gebaut, man sollte auch bedenken nicht nur (über)lesen :

Dann könnte es sein, dass die Pfade aus dem Makefile nicht mehr stimmen, weil Du die Sachen anders ablegtest wie es das Makefile erwartet.

Die Projekte:

..../cpm22
..../libZ80

müssen auf der selben Ebene liegen.

das bedeutet, wenn Du im Projekt cpm22 stehst

Also pwd

Quellcode:
/home/hans-werner/cpmonline/cpmonline-code/cpm22

ausgibt

muss die libZ80.a unter


Quellcode:
/home/hans-werner/cpmonline/cpmonline-code/libZ80/Debug/libZ80.a

zu finden sein.

Ist das so bei DIR ???




Hi Hans-Werner

irgendwie fehlt Dir da noch der richtige Einstig in das, wovon ich die ganze Zeit schreibe )

Denn DU hast die libZ80.a scheinbar garnicht gebaut, hier sehe ich wieder nur den Build der CP/M 2.2 Images und der Target-Simulation.

Um ein z80 Target zu simulieren braucht es aber auch den z80 Instruktion-Set-Simulator, der hat den Namen libZ80.a und befindet sich ebenfalls im Repository, unter dem Verzeichnis libZ80.

Das musst Du auch runter Laden und die libZ80.a erstellen mit make. Jedenfalls dann, wenn Du erst einmal in der Target-Simulation (Also lokal, ohne Hardware (RS232) und externes Z80Hardware, arbeiten und Debuggen möchtest.

Leider habe ich unser Projekt aus alten Sachen zusammen kopiert und bei uns nicht benötigte Teile ganz weg gelassen. Ich erkennen nun aber, dass eine solche Entwickler oder Hacker-Version hier nicht angebracht ist. Das wird natürlich vielen so gehen, sollten sich welche für unser Zeugs interessieren. Die sind dann sicher nicht so geduldig mit mir wie Du und wenden sich Wortlos ab. Daher meinen Dank das Du da nicht locker lässt .

Ich möchte Dich also bitte das Projekt morgen noch mal komplett vom Repository runter zu laden.

Entschuldige bitte, dass ich einfach nicht daran gedacht habe, dass ihr ja nicht in meinem verwirrten Kopf lebt, wo solche Softwareklumpen wie Denksportaufgaben willkommen sind Ich Checke es heute Abend so ein, dass es nur noch ein einziges makefile für Alles gibt, das auch alles was fehlt erkennt und baut.

Es dürfte Allen dann wesentlich einfache sein das Ganze zu durchschauen und daran mitzuarbeiten.

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

Dieser Post wurde am 11.07.2013 um 11:41 Uhr von timetube editiert.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
048
11.07.2013, 11:34 Uhr
hschuetz

Avatar von hschuetz

Hallo Jürgen,
die libz80.a hab ich natürlich vorher gebaut mit make... ging auch ohne Fehler...nur findet der das bei mir nicht. na ja schaun wir mal morgen...
Ansonsten verschaffe ich dir mal einen Zugang auf meine Linux...
Gruß
Hans-Werner
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
049
11.07.2013, 12:16 Uhr
timetube

Avatar von timetube

Ja Hans-Werner, hatte ich auch schon bemerkt, dass ich das überlesen hatte,

ist bdenn die lib relativ zum cpm22 unter ../libZ80/Debug zu finden, gibt es die dort nun nach dem Bauen?
Möglicherweise ist das Makefile auch mit einem DOS/WINDOWS Editor bearbeitet worden und hat nun falsche Linefeed oder es wurden TABS durch Leerstellen ersetz ???

Man kann das GIT auch so einstellen, das es Files zwischen den Systemen konvertiert, das ist IMMER tödlich.
Aber warte bis morgen, ich habe viel getan, z.B. den Z80-Simulator und den Host komplett getrennt. Eine Datei zur Erstellung von Paaren von virtuellen seriellen Schnittstellen hinzugefügt u.s.w.

Alles wird Gut )

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

Dieser Post wurde am 11.07.2013 um 12:29 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