NKC Forum
Registrieren | FAQ | Suche | Wer ist online? | Mitgliederliste | Heutige Beiträge | Kalender | Einloggen



Autor Thema: Dateitransfer PC<->NKC
smed
Stammgast
**
ID # 114


  Erstellt am 13. Juni 2021 22:26 (#21)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hallo,
an einer Lösung fuer Dateiuebertragung PC<->NKC per SER2 haette ich auch Interesse. Bisher habe ich den Dateitransfer per Arduino auf NKC bus gelöst (siehe frühere posts von mir). Ganz wichtige ist allerdings eine "autostart" Funktion, damit der Ablauf:

auf PC compilieren
zum NKC übertragen
program auf NKC starten

Mit einem einzigen Tastaturshortcut geht, erst dann geht's mit dem programmieren in C fuer NKC richtig bequem. Ich benutze als Texteditor fuer gcc Sublime Text, damit kann man einfach eigene Makros (zum batchdatei aufrufen) einbinden. Meine Batchdatei sieht so aus:


@cls
@echo off
m68k-elf-gcc -std=gnu99 -t -save-temps -mc68000 -mpcrel -aux-info funcs.h -fomit-frame-pointer -nostartfiles -Wno-attributes -T ram.ld -Wa,--w,--pcrel,-acdhls=file.asm,--noexecstack file.c -O5 -lm

m68k-elf-strip --input-target=elf32-m68k --output-target=symbolsrec -o file.s19 a.out
m68k-elf-objcopy --input-target=srec --output-target=binary file.s19 file.m68
m68k-elf-objdump -D a.out > file.ass
m68k-elf-objdump -h a.out > file.mem

NKCtransfer COM4 2000000 14000 file.s19 START


Die autostart - Funktion geht so:
Das Program NKCtransfer schiebt ueber COM4 die Datei (das executable) zum Arduino. Das executable hat einen NKC Bibliotheks Header und wird in den NKC Speicher geschrieben. Der Arduino kann natuerlich auch die KEY simulieren und auch einen NKC RESET ausloesen. Nach der Dateiuebertragung, loesst der Arduino einen RESET aus, wartet 2sek und simuliert dann die Tasten zum Bibliotheks Funktion und startet dort das erste Program. Das lief waehrend der Entwickung von Space Invaders ganz hervorragend. Das Ganze klingt hier komplizierter als es ist.

Habe keine schnelle Idee wie man ein autostart - Funktion mit der SER2 realisieren koennte...

Gruss
smed

-----------------------
NKC'ler seit 1984 (Pause zw. 1988-2017)
CPU68k,CPU68000,4xROA64,6xIOE,6xGDP,GDPHS,8xSBC2/3,HEXIO,6xKEY,UHR3,PROMER,CENT,SER,SOUND,CAS,6xBUS2,4xBUS3,3xPOW5V,2xTAST..und einen ArduinoMEGA mit auf dem BUS, und eine selbstgebastelte MEM960k.

NKC - OpenSource since 1983

Beiträge: 182 | Mitglied seit: Januar 2011 | IP-Adresse: nicht gespeichert
DerInder
Fast schon Admin
Seitenadmins
***
ID # 2


  Erstellt am 15. Juni 2021 08:28 (#22)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Moin Moin,

bei mir läuft das DL-Programm jetzt mit der GDP-FPGA :cool:

Auf PC-Seite hab ich noch die PATH-Variable ergänzt um:
C:\Users\BENUTZER\AppData\Local\Programs\Python\Python38
(Python 3.8 da der PC mit Win7 läuft)

Auf NKC-Seite (68030) hab ich das Programm noch ein klein wenig anpassen müssen, da es sich sonst nicht assemblieren ließ. Es gibt bei mir allerdings noch ein kleines Problem. Wenn man das Programm beendet und danach neu starten will, stürzt der NKC ab (Falscher Befehl). Ich tippe mal drauf, das der Stackpointer nicht stimmt.

Die Variante für die SER2 läuft z.Zt. noch nicht. Ich bekomme da haufenweise Fehlermeldungen. Das dürfte an den Statusabfragen liegen, die hab ich wohl nicht so ganz korrekt hinbekommen...

-----------------------
Gruß
-=jens=-

Beiträge: 912 | Mitglied seit: Juni 2004 | IP-Adresse: nicht gespeichert
andi
Kennt sich schon aus
**
ID # 213


  Erstellt am 15. Juni 2021 13:41 (#23)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hi,
Super!! Check mal deine modifizierte Version ein. Ich schau sie mir dann mal an.
Versteh nicht ganz warum der Stack nicht stimmen sollte.
LG Andi

Beiträge: 132 | Mitglied seit: Mai 2021 | IP-Adresse: nicht gespeichert
andi
Kennt sich schon aus
**
ID # 213


  Erstellt am 15. Juni 2021 19:44 (#24)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hallo,

Ich hab noch einen Update + (kleinen) Bugfix eingecheckt.

LG,
Andi

Beiträge: 132 | Mitglied seit: Mai 2021 | IP-Adresse: nicht gespeichert
andi
Kennt sich schon aus
**
ID # 213


  Erstellt am 20. Juni 2021 09:44 (#25)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Zitat von smed:
Hallo,
an einer Lösung fuer Dateiuebertragung PC<->NKC per SER2 haette ich auch Interesse. Bisher habe ich den Dateitransfer per Arduino auf NKC bus gelöst (siehe frühere posts von mir). Ganz wichtige ist allerdings eine "autostart" Funktion, damit der Ablauf:

auf PC compilieren
zum NKC übertragen
program auf NKC starten

Mit einem einzigen Tastaturshortcut geht, erst dann geht's mit dem programmieren in C fuer NKC richtig bequem. Ich benutze als Texteditor fuer gcc Sublime Text, damit kann man einfach eigene Makros (zum batchdatei aufrufen) einbinden. Meine Batchdatei sieht so aus:


@cls
@echo off
m68k-elf-gcc -std=gnu99 -t -save-temps -mc68000 -mpcrel -aux-info funcs.h -fomit-frame-pointer -nostartfiles -Wno-attributes -T ram.ld -Wa,--w,--pcrel,-acdhls=file.asm,--noexecstack file.c -O5 -lm

m68k-elf-strip --input-target=elf32-m68k --output-target=symbolsrec -o file.s19 a.out
m68k-elf-objcopy --input-target=srec --output-target=binary file.s19 file.m68
m68k-elf-objdump -D a.out > file.ass
m68k-elf-objdump -h a.out > file.mem

NKCtransfer COM4 2000000 14000 file.s19 START


Die autostart - Funktion geht so:
Das Program NKCtransfer schiebt ueber COM4 die Datei (das executable) zum Arduino. Das executable hat einen NKC Bibliotheks Header und wird in den NKC Speicher geschrieben. Der Arduino kann natuerlich auch die KEY simulieren und auch einen NKC RESET ausloesen. Nach der Dateiuebertragung, loesst der Arduino einen RESET aus, wartet 2sek und simuliert dann die Tasten zum Bibliotheks Funktion und startet dort das erste Program. Das lief waehrend der Entwickung von Space Invaders ganz hervorragend. Das Ganze klingt hier komplizierter als es ist.

Habe keine schnelle Idee wie man ein autostart - Funktion mit der SER2 realisieren koennte...

Gruss
smed



Hallo,
Also meine Lösung geht auch sehr schnell und einfach finde ich. Es wird zwar auf der NKC Seite ein Programm zum Empfang der Daten benötigt aber der Unterschied zu deiner Lösung ist nicht groß. Das Emfangs- Programm musst du vorher starten was aber kein großes Problem darstellt. Auf der PC Seite starte ich einfach einen kurzen Script der auf die NKC Seite wartet und dann den Transfer erledigt. Am Ende ist das File (Testprogramm) auf einer Disk (Ramdisk) und kann gestartet werden (Ein Autostart-Befehl wär beim Download Programm auch kein Problem). Wenn ich dann aus meinem Testprogramm nicht mehr ordnungsgemäß raus komme muss ich Reset drücken und zurück ins Jados wechseln (G B) und dann das Empfangsprogramm neu starten (Pfeil- rauf Taste, Return) und das ganze kann von vorne beginnen. Deine Lösung via DMA hat auch was weil sie kein Empfangs-Programm braucht, ist aber nur bei einem 68008 ( 8-bit Bus) richtig einfach. Bei einem 68020 mit 32bit bus ist das was anderes. Meine SW Lösung funktioniert hier immer gleich gut. Wär toll wenn wir eine gemeinsame Lösung auf die Welt bringen könnten.
LG Andi

Beiträge: 132 | Mitglied seit: Mai 2021 | IP-Adresse: nicht gespeichert
smed
Stammgast
**
ID # 114


  Erstellt am 20. Juni 2021 22:47 (#26)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hi,
da hast du Recht, das mit dem Arduino auf dem Bus geht nur beim 68008 einfach.

Die autostart Funktion ist eszentiell fuer eine bequeme Entwickungsumgebung - ein einzelner (1) Tastendruck am PC fuer compilieren, uebertragen und starten, und das alles mit der SER2 - das ist die Herausforderung...

Ein Paar Gedanken:
Auf dem NKC ein Program voher zu starten ist ja kein Problem, aber von da an sollte der Autostart mehrfach funktionieren. Geht da was mit einer Interrupt Routine? Die SER2 hat doch 2 ports, vielleicht liesse sich der 2. port zum Interrupt-ausloesen verwenden? Vom PC aus 2 Kabel ist ja auch kein Problem...

Gruss
smed

-----------------------
NKC'ler seit 1984 (Pause zw. 1988-2017)
CPU68k,CPU68000,4xROA64,6xIOE,6xGDP,GDPHS,8xSBC2/3,HEXIO,6xKEY,UHR3,PROMER,CENT,SER,SOUND,CAS,6xBUS2,4xBUS3,3xPOW5V,2xTAST..und einen ArduinoMEGA mit auf dem BUS, und eine selbstgebastelte MEM960k.

NKC - OpenSource since 1983

Beiträge: 182 | Mitglied seit: Januar 2011 | IP-Adresse: nicht gespeichert
Waldheini
Ist öfters hier
**
ID # 168


  Erstellt am 20. Juni 2021 23:46 (#27)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hallo,
ich mache das mit dem Z80 unter CP/M auch mit der SER in meinem Assember. Ich übertrage aber nicht das Bin direkt sondern als ASCII. Das dauert zwar länger, aber ich kann Steuerzeichen mit senden, wie z.B. den Dateinamen, unter dem das Programm gespeichert wird.
Ich habe zwar kein Autostart eingebaut, würde aber sicher auch gehen.

Die DMA Lösung nutze ich dabei aber auch, nur nicht über einen Android, sondern einen USB-Controler den ich auf einer Karte im NKC habe.
War mit RAM in der Bankboot ganz nützlich, um den FLOMON für meine billig CRT umzuschreiben.

Funktioniert auch mit 16 Bit recht gut, nur habe ich da noch keinen Assembler.

Gruß Bernd

Beiträge: 35 | Mitglied seit: Dezember 2016 | IP-Adresse: nicht gespeichert
Creep
Voll in Gange
***
ID # 169


  Erstellt am 19. Juli 2021 17:20 (#28)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hallo Andi,

könntest Du vielleicht noch das *.68k vom rs232d einchecken? Bzw. womit assembliere ich es? Ich hatte es in den Editor vom GP geladen und den Assembler aufgerufen. Darauf wurden nur Fehler Angezeigt (unbekannte Symbole oder so, habs grad nicht neben mir).
Ich hab jetzt meine SER im System und möchte das gern mal probieren.

Gruß, Rene

Beiträge: 651 | Mitglied seit: Januar 2017 | IP-Adresse: nicht gespeichert
andi
Kennt sich schon aus
**
ID # 213


  Erstellt am 20. Juli 2021 10:56 (#29)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hallo,
Ja mach ich heute Abend.
Interessant dass das bei dir nicht geht. Ich assembliere es immer mit dem GP-Assembler.
Hat jemand eine Idee was da schief gehen könnte?

Beiträge: 132 | Mitglied seit: Mai 2021 | IP-Adresse: nicht gespeichert
Creep
Voll in Gange
***
ID # 169


  Erstellt am 20. Juli 2021 11:43 (#30)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hallo,

ich probier das auch nochmal. Ich war mir ja nicht sicher, ob es wirklich gehen sollte und hab die Fehler erstmal so hingenommen und nicht weiter probiert.

Gruß, Rene

Beiträge: 651 | Mitglied seit: Januar 2017 | IP-Adresse: nicht gespeichert
Creep
Voll in Gange
***
ID # 169


  Erstellt am 20. Juli 2021 19:51 (#31)  |  Zitat Zitat   PN PN   E-Mail E-Mail
So, das Assemblieren klappt. Allerdings kann ich nicht das "rs232d.asm" aus dem GP mit Laden von Editordaten oder aus dem Editor einlesen. Das gibt einen allgemeinen Fehler, wenn ich "E:rs232d.asm" als Namen angebe. Directory von "E:" anzeigen klappt aber. Als von Jados aus edit rs232d.asm und im Editor dann ^KA.

Wie schreibe ich das *.68k File dann auf Diskette? Aus dem GP Menü, aber was als Start- und Endadresse? Ich sollte nochmal ausgiebig die Dokumentation von GP und JaDos lesen. Überflogen hab ich sie ja schonmal. Aber was nützt das, wenn man die Informationen da gerade nicht braucht?

Gruß, Rene

Beiträge: 651 | Mitglied seit: Januar 2017 | IP-Adresse: nicht gespeichert
andi
Kennt sich schon aus
**
ID # 213


  Erstellt am 20. Juli 2021 20:17 (#32)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hallo,

Wenn du das .asm file auf einer Jados Disk hast dann assembliere

Beiträge: 132 | Mitglied seit: Mai 2021 | IP-Adresse: nicht gespeichert



| https://hschuetz.selfhost.eu | Boardregeln | Datenschutzerklärung


Tritanium Bulletin Board 1.8
© 2010–2021 Tritanium Scripts


Seite in 0,024283 Sekunden erstellt
20 Dateien verarbeitet
gzip Komprimierung eingeschaltet
1301,66 KiB Speichernutzung