Hallo Peter, kannst Du mir bei Gelegenheit das SURVEY.COM (im Archiv) auf dem AVRcpm ausführen ?! und den Output schicken. Die wichtigen Adressen stehen zwar im BIOS.ASM, aber sicher ist sicher. Danke, Andreas
Ich denke, wenn die fat16 Version auch für 8-bit ok ist, sollten wir diese als Basis für die weitere Entwicklung nehmen. Evtl. mal ein Diff gegen V2/trunc fahren.. Meines Wissens hatte Leo C. das Diskettenformat vergrößert und evtl. ist der Z80 Emulationscode in dieser Versionen schon weiter fortgeschritten?? @Leo C: Liest du noch mit..? Peter
Ich bekomme derzeit die 8-Bit Variante nicht hin. - RAM-Test OK - MMC lesen von Fat 16 OK - Reboot ??? muß weiter suchen... Joe
Nachtrag. Die 4-Bit Variante läuft auch bei mir mit Fat16. Allerdings reagieren einige MMC's giftig. Die MC-Routine ist nicht wirkllich für alle Karten sicher. Joe
Ja Peter, ich lese noch mit. Inzwischen habe ich auch wieder etwas Zeit für das Projekt, aber wohl nicht mehr so viel wie letzten Sommer. Am Samstag habe ich endlich mal meinen letzten Softwarestand in das SVN-Repository eingecheckt. Die Software funktioniert bei mir, ist aber nicht besonders gut getestet. Wegen der Features (FAT16, Disk Formate) bitte nach meinen letzten Beiträgen hier im Forum suchen. Danach hier fragen. Die aktuelle Software ist für gewöhnlich hier zu finden: http://cloudbase.homelinux.net/viewvc/avr-cpm/avrcpm/trunk/ Oder besser, mit einem SVN-Client: http://cloudbase.homelinux.net/svn/avr-cpm Als Client für Windows ist tortoisesvn zu empfehlen: http://tortoisesvn.tigris.org/ Übrigens Peter, bei SVN steht trunk für Stamm, nicht etwa für Kofferraum oder Rüssel. :) In trunk ist üblicherweise die Hauptentwicklungslinie. Wegen Z80 Unterstützung könnte ja mal jemand bei "Horst S. (h3aau)" nachfragen. (Beitrag "Re: CP/M auf ATmega88") Joe, wenn Du mit den SD-Karten-Problemen nicht weiterkommst, kann ich versuchen, zu helfen.
@Joe: hast du mal probiert mit dem Debugschalter: FAT16_DEBUG = 1 mehr Informationen zu bekommen? Zur SD Card Initialisierung gibts ja einige Projekte zum vergleichen/kopieren: Z.B www.sd2iec.de und sicher auch hier im Forum.. Beitrag "MMC/SD-Karte mit FAT16 an AVR" Beitrag "MMC SD library FAT16 FAT32 read write" --- @Leo C: Prima! D.h. der trunk enthält jetzt die neueste Version? Das Problem, was ich whrscheinlich damit habe ist, das es sich weit von Win$ entfernt hat..? D.h mein ipl+bios etc. und Diskformate muß ich anpassen/ändern, oder kann ich die orig. Formate+Bios beibehalten (vorerst)? Ist den da neuerer Z80 code von Horst S. (h3aau) schon drin, oder noch nicht? Peter
Leo C. schrieb: > Joe, wenn Du mit den SD-Karten-Problemen nicht weiterkommst, kann ich > versuchen, zu helfen. Super Angebot Leo. Das MMC Problem bei der 4-Bit Variante kann über dden SPI Takt behoben werden, der der 8-Bit Variante bin ich derzeit ratlos. Der Ramtest läuft durch, MMC wird erkannt und gelesen, der Sprung auf Adr. 2000H erfolgt UND dort steht nur "Mist", meißt 00 00 00. Na und dann wars das. Ich habe noch nicht rausbekommen ob der Ram seinen Inhalt vergißt, oder von der MMC falsch gelesen wird. Ich denke aber zweiteres, da einige Karten mit der Meldung "kein System" antworten.
Es sieht in etwa immer so aus: CPM on an AVR, v2.0 Initing mmc... mmcInit mmcCMD: 00 00000000 .. 95 CMDRes: 01 mmcCMD: 08 000001AA .. 87 CMDRes: 01 mmcCMD: 37 00000000 .. 01 CMDRes: 01 mmcCMD: 29 40000000 .. 01 CMDRes: 01 mmcCMD: 37 00000000 .. 01 CMDRes: 01 mmcCMD: 29 40000000 .. 01 CMDRes: 01 mmcCMD: 37 00000000 .. 01 CMDRes: 01 mmcCMD: 29 40000000 .. 01 CMDRes: 00 mmcCMD: 3A 00000000 .. 01 CMDRes: 00 CT: 04 InitRes: 00 mmcCMD: 11 00000000 .. 01 CMDRes: 00 mmcCMD: 11 00FF4400 .. 01 CMDRes: 00 ... mmcCMD: 11 01011200 .. 01 CMDRes: 00 mmcCMD: 11 01011400 .. 01 CMDRes: 00 A:CP/M partition at: 8097, size: 4144KB. B:CP/M partition at: 16385, size: 7808KB. Partinit done. mmcCMD: 11 003F4200 .. 01 CMDRes: 00 Ok, CPU is live! PC=2000 A =20 BC =0000 DE =0000 HL = IPL müßte jedoch mit 31 00 10 beginnen Joe
Ich habe mir trunk gerade mal gezogen. Konnte ich für m168, 30MHz, 4-bit Dram und fat16 ohne Fehler übersetzen. Frage: Kann ich das mit den 'alten' Bios+ipl Diskimages (243kb) nutzen? Um die Assemblierung der bios.mac +ipl.mac möchte ich mich dann erst später kümmern... Peter
Bios assemblieren: zxcc habe ich für Dos/Win$ nicht gefunden. m80l80.zip habe ich probiert: *BIOS,TTY:=BIOS wirft 38 fatale Fehler aus. Das ist so für mich natürlich keine akzepable 'Lösung'.. Ich brauche etwas, womit ich die unter Win$ assemblieren kann.. @Leo C: Kannst du die *.mac nicht wieder per awk? script in asm zurück wandeln? Peter
Im Anhang ist jetzt mal ein aktuelles System. Zum Rest schreibe ich später nochmal mehr. Jetzt mal auf die Schnelle... Peter Sieg schrieb: > Bios assemblieren: > zxcc habe ich für Dos/Win$ nicht gefunden. Beitrag "Re: CP/M auf ATmega88" Beitrag "Re: CP/M auf ATmega88" Darüber, und auch sonst, sollte es kein Problem sein, http://www.seasip.demon.co.uk/Unix/Zxcc/ zu finden. Das Archiv der 0.4 Version enthält auch Windows Binaries. http://www.seasip.demon.co.uk/Unix/Zxcc/zxcc-0.4.0.tar.gz > m80l80.zip habe ich probiert: > *BIOS,TTY:=BIOS wirft 38 fatale Fehler aus. Ich meine mich zu erinnern, daß ich das mal kurz ausprobiert hatte, in dem ich alle benötigten Dateien in ein Verzeichnis kopiert hatte. Um das alles richtig unter Windows zu installieren, fehlt mir die Zeit, vernünftiges Gerät und die Motivation. Hier wird es doch den ein oder anderen Windowsprogrammierer geben, der das mal richtig installieren und das Makefile ggf. anpassen kann. Mein Provisorium hat sicher funktioniert, sonst hätte ich diese Möglichkeit hier garnicht erwähnt. > Das ist so für mich natürlich keine akzepable 'Lösung'.. Das ist natürlich schlimm für Dich. > Ich brauche etwas, womit ich die unter Win$ assemblieren kann.. > @Leo C: Kannst du die *.mac nicht wieder per awk? script in asm zurück > wandeln? nein.
Ja nun habe ich auch gelesen, das in der 4.0 Version Dos/Win Programme enthalten sind. In der 5er aber nicht. Habe ich getestet (alles in 1 Verzeichnis), bekommen auch hier mit: zxcc m80 -=bios.mac 38 fatale Fehler?? --- Hier: http://hc-ddr.hucki.net/wiki/doku.php/cpm:windows habe ich auch den cpm player getestet. Dort bekomme ich mit cpm m80.com =bios.mac 41 fatale Fehler? bios.rel wird aber erzeugt. G:\temp>cpm l80.com bios.rel,bios.bin/N/E Link-80 3.44 09-Dec-81 Copyright (c) 1981 Microsoft Data 0100 0328 < 552> 53266 Bytes Free [0000 0328 3] G:\temp> --- @Leo C. Ja ich weiß.. mal sehen.. aber wenn alle Stricke reißen bleibe ich eben bei dem Code den ich aktuell habe.. das war auch ein Grund, damals ersteinmal nicht mehr weiter 'mitzumachen' - ist halt (für mich!) blöd, wenn das nach Linux Only abwandert und ich/Windows außen vor bleiben. Nun, evtl. findet ja jemand noch woran es liegt bzw. eine funktionierende Lösung.. Kann ich denn den AVR Code aus trunk mit dem 'alten' Bios verwendet, oder ist zwingend auch das aktuelle Bios tz verwenden? Peter
Peter Sieg schrieb: > Kann ich denn den AVR Code aus trunk mit dem 'alten' Bios verwendet, > oder ist zwingend auch das aktuelle Bios tz verwenden? Nein geht nicht. Joe
Jup. Geht nicht.. habe ich gerade probiert.. Leider noch eine schlechte Nachricht. FAT16 scheint noch Probleme zumindest beim schreiben zu haben.. BDSC (C-Compiler) meldet bei der trunk Version: BDos Err on C.. Und die fat16-test meldet bei clink mmind - No main defined - aborted. Wenn ich mit Partitionen arbeite geht fat16-test einwandfrei.. trunk muss ich noch testen.. :-( Peter
arg. Muss mich mal anmelden, damit ich editieren kann.. --- fat16-test und trunk lassen sich nicht mehr für atmega88 übersetzen - auch ohne fat16support! Das kann der atmega88 nicht ab: call uartputc Peter
Hallo Peter und Leo, ich habe hier mal das ALIADOS im Cygwin übersetzt. Es ist eine einigermassen lauffähige CPM-Emulation - eigentlich für Linux - die aber auch unter Windows spielt (hier bei mir unter Win7) Nach dem Start landet man auf Drive A: und das aktuelle Verzeichnis ist dann auch im CPM auf A: zu sehen. Wenn dort M80 und L80 liegen, kann man sogar mit: aliados M80.COM =blafasel.asm .. aus der DOS-Shell assemblieren. Hier habe ich das gefunden: http://www.arrakis.es/~ninsesabe/aliados/ Im Ziparchiv liegt das aliados.exe und die notwendigen Cygwin-DLLs. Bitte die DDLs im gleichen Verzeichnis wie das .exe legen. Wer es braucht, kann es ja mal checken, evtl. hilft das den Win$-Freunden bei der BIOS Assemblierung. Gruss, Andreas
@andreas: Danke. Arbeitet aber genauso wie oben cpmplayer etc. m80 meldet wieder 38 fatal errors.. Ich denke die haben ein Problem mit der Quelldatei..? Peter
Ich habe gerade mal bios.mac in die AltairSIMH cpm2.2 disk geladen und dort m80 =bios.mac aufgrufen.. auch 38 fatal errors..?? Kann es sein, das ich nicht das richtige m80.com + l80.com habe..?? Bitte mal die richtigen Versionen hier anhängen.. dann solltes das ggf. mit einige hier weiter oben aufgeführten Tools gehen.. denn die Meldung 38 fatal errors hatte ich schon mehrere Male mit unterschiedlichen Tools.. Peter
@Peter: ich kommte mit M80 und L80 das bios.mac aus dem SVN/trunk prima assemblieren und linken (habe das aliados unter macosx verwendet): lunatix:cpm hein$ aliados m80.com =bios.mac No Fatal error(s) lunatix:cpm hein$ aliados l80.com bios,bios/n/e Link-80 3.44 09-Dec-81 Copyright (c) 1981 Microsoft Data 0100 0518 < 1048> 52514 Bytes Free [0000 0518 5] hier meine eingesetzten Tools. Andreas
Peter Sieg schrieb: > Ich habe gerade mal bios.mac in die AltairSIMH cpm2.2 disk geladen und > dort m80 =bios.mac aufgrufen.. auch 38 fatal errors..?? Kann es sein, daß Dein M80 die Includedateien 'avrcpm.lib' und 'cfgacpm.lib' nicht findet?
Ja, so ist/war es ;-) aliados geht!! Habe inzwischen das cpm.bin komplett neu erstellen können. Nun auch neue diskimages erzeugt und unter Knoppix auf cp/m Partitionen mit dd geschrieben.. => Bin jetzt auf neuestem trunk level ;-) Trotzdem gibt es leider unter fat16 ein Schreibproblem! @Andreas: kannst du bitte mal versuchen auch die cpmtools unter deiner cygwin Umgebung zu compilieren? Dann haben wir die cygwin dll's gemeinsam um brauchen nicht ggf. 2 Versionen. Dazu haben die cpmtools unter Windows noch 2 Unschönheiten: 1. diskdefs wird FEST unter x.\cpmtools gesucht. 2. diskdefs muss nach Unix Konvention nur mit LF als Zeilenende versehen sein (kein CR+LF wie unter Dos/Win üblich) http://www.moria.de/~michael/cpmtools/ bei zxcc und cpm (cpmplayer) scheinen die lib's/includes von m80/l80 nicht gefunden zu werden.. schaue ich mir noch mal an.. ob man das nicht noch hinbekommt.. Fazit: Man kann alles unter Windows assemblieren! Peter
Hmm.. m80l80pc geht nun auch.. vielleicht hatte ich wirklich nur die includes nicht im Verzeichnis.. Ich hänge das m80l80pc.zip inkl. aller benötigten Dateien hier an. zxcc+cpmplayer schaue ich mir jetzt auch noch mal an.. Peter
@Peter: Du brauchst cpmtools unter cygwin ? Habe ich eben compiliert, aber wie möchstest Du es mit dem diskdefs File ? Andreas
@Peter: hier das cpmtools als cygwin-binary, ohne MAN-Pages und Sourcecode. Das diskdefs File wird im aktuellen Verzeichnis gesucht. Andreas
Ich hänge jetzt hier mal an: avrcpm_fat16.zip = neueste trunk Quellen inkl. AVR Studio 4 Projekt und avrcpm_aliados.zip = alles zum bilden von Bios+Ipl,CPM.BIN und Disk Images mit cpmtools. Das sind außer der Hardware alles was es unter Windows braucht.. Auf 4-bit läuft es prima mit Partitionen. fat16 lesend ok; schreibend Problem. 8-bit habe ich (noch) nicht. Bei Leo C. sollte es aber laufen (Part.?) und bei Joe gibts Probleme (fat16?).. Z80 Stand? Peter
Joe G. schrieb: > Es sieht in etwa immer so aus: > > CPM on an AVR, v2.0 > Initing mmc... ... > mmcCMD: 11 003F4200 .. 01 CMDRes: 00 > Ok, CPU is live! Das sieht geigentlich alles ganz gut und plausibel aus. > PC=2000 > A =20 BC =0000 DE =0000 HL = > > IPL müßte jedoch mit 31 00 10 beginnen Das der mmc-Treiber ohne Fehlermeldung falsche Daten liefert, will ich noch nicht so ganz glauben. Deshalb würde ich den Fehler erst mal an anderer Stelle vermuten. Hast Du inzwischen mal mit aktueller Software (trunk) getestet?
@Peter, Leo C. die 4-Bitv Variante aus trunc funktioniert (eingeschränkt). Die 8-Bit Variante hat immer noch die gleichen Probleme. Ich vermute tatsächlich MMC Probleme weil: (nun einige Logauszüge) 4 Bit Version Test 1, MMC_1 128MB, MMCSPI2X =1 (CLK/2) CPM on an AVR, v2.1 Testing RAM: fill...wait...reread... Initing mmc... A:FAT16 File-Image at: 8598, size: 208KB. B:FAT16 File-Image at: 8510, size: 175KB. C:FAT16 File-Image at: 8450, size: 118KB. Partinit done. Ok, CPU is live! ipl S A =A8 BC =280C DE =0080 HL =E180 SP =2000 PC =202F 28 A8 02 Invalid opcode! bootet also komplet durch, führt IPL aus und dann gibt es Fehler Test 2, MMC_1 128MB, MMCSPI2X =0 (CLK/4) CPM on an AVR, v2.1 Testing RAM: fill...wait...reread... Initing mmc... A:FAT16 File-Image at: 8598, size: 208KB. B:FAT16 File-Image at: 8510, size: 175KB. C:FAT16 File-Image at: 8450, size: 118KB. Partinit done. Ok, CPU is live! ipl 62k cp/m vers 2.2 A> FEHLERFREI Test 3, MMC_2 1GB, MMCSPI2X =0 (CLK/4), identisches Immage CPM on an AVR, v2.1 Testing RAM: fill...wait...reread... Initing mmc... A:CP/M partition at: 8097, size: 4144KB. B:CP/M partition at: 16385, size: 7808KB. Partinit done. Ok, CPU is live! ipl DISK I/O: Invalid Function code: 01 8 Bit Version Test 4, MMC_1 128MB, MMCSPI2X =0 (CLK/4), gleiche Image, ohne MMC Debug CPM on an AVR, v2.1 Testing RAM: fill...wait...reread... Initing mmc... A:FAT16 File-Image at: 8598, size: NEUSTART CPM on an AVR, v2.1 Testing RAM: fill...wait...reread... Initing mmc... Test 5, MMC_1 128MB, MMCSPI2X =0 (CLK/4), gleiche Image, mit MMC Debug CPM on an AVR, v2.0 Testing RAM: fill...wait...reread... Initing mmc... mmcInit mmcCMD: 00 00000000 .. 95 CMDRes: 01 mmcCMD: 08 000001AA .. 87 CMDRes: 05 ... A:FAT16 File-Image at: 002, size: 081KB. Partinit done. mmcCMD: 11 00017C00 .. 01 CMDRes: 00 NEUSTART CPM on an AVR, v2.0 Testing RAM: fill...wait...reread... Initing mmc... d.h. wenn das MMC Debug eingeschaltet ist, wird die Karte etwas besser gelesen jedoch auch nicht fehlerfrei. Übrigens sind die 4-Bit und die 8-Bit Varianten auf unterschiedlicher Hardware aufgebaut. Joe
@Peter, bitte vergrößere Deine FAT16-Imagedateien mal auf (mindestens) 256 KByte. Unser Treiber kann das leider nicht selbst. Vergrößern geht z.B. durch anhängen von Bytes mit dd, oder mit makeimage von Frank Zoll, das im SVN in trunk/tools/makeimage zu finden ist. Wenn man bei makeimage die Größe wegläßt, wird die Datei "zufällig" auf 256 KB vergrößert. Neue, frisch formatierte Images kann man auch folgendermaßen erzeugen, damit sie von Anfang an die richtige Größe haben:
1 | $ makeimage /dev/null CPMDSK_x.IMG |
mkfs.cpm kann man sich dann sparen. Unter Windows muß man /dev/null evtl. durch etwas anderes ersetzen.
Hmm. Was mir aufgefallen ist. Test 4 = V2.1, ab Test5 V2.0? Alle Test sind mit fat16 Fileimages gemacht. Kannst du bitte auch mal 8-bit testen, ohne fat16 Images auf die SD Karte zu tun, sondern anstatt dessen mal Partitionen zu verwenden? Ich verwende ürigens auch 2 128Mb SD Karten: Noname + Kingston. @Leo C: bei dir läuft aber die trunk in 8-bit? Es sind doch mind. 10 Platinen mit der 8-bit 4MB + VGA Teil in Betrieb.. welche Version wird denn dort eingesetzt..? Peter
@Leo C: Du meinst/vermutest, das beim schreiben über die aktuelle Größe hinausgegangen wird und dann gibts Probleme.. weshalb diese Mindestgröße sein muß? makeimage - liegt nur als c Source vor. Ich habe keinen Compiler installiert z.Z :-( Und wenn sich jemand findet (@Andreas?) der das unter Windows / Cygwin kompiliert, dann bitte auch evtl. Unix Spezifika (/dev/null) entsprechen für uns Win$ User händelbar machen.. Peter
Peter Sieg schrieb: > @Leo C: bei dir läuft aber die trunk in 8-bit? Logo. 4Bit ist (glaube ich) noch auf meinem Steckbrett, und habe ich schon lange nicht mehr getestet. > Es sind doch mind. 10 Platinen mit der 8-bit 4MB + VGA Teil in Betrieb.. > welche Version wird denn dort eingesetzt..? Keine Ahnung. Ich habe hier meinen eigenen Lochrasteraufbau. Hier gibts ein Bild: Beitrag "Re: CP/M auf ATmega88"
Peter Sieg schrieb: > @Leo C: Du meinst/vermutest, das beim schreiben über die aktuelle Größe > hinausgegangen wird und dann gibts Probleme.. weshalb diese Mindestgröße > sein muß? Nein, ich weiß, daß der Treiber auf das Dateiende testet, und nicht darüber hinaus schreibt. Stattdessen meldet er einen Fehler zurück. Der Treiber könnte an der Stelle auch die Datei vergrößern (sofern Platz auf dem Datenträger), aber der Aufwand dafür ist nach Franks und meiner Meinung nach unverhältnismäßig groß. > makeimage - liegt nur als c Source vor. Ich habe keinen Compiler > installiert z.Z :-( Das Programm ist in anspruchlosestem ANSI-C geschrieben, und kann mit jedem Compiler auf wahrscheinlich jeder Plattform übersetzt werden. > Und wenn sich jemand findet (@Andreas?) der das unter Windows / Cygwin > kompiliert, dann bitte auch evtl. Unix Spezifika (/dev/null) entsprechen > für uns Win$ User händelbar machen.. Andreas wird das sicher machen können. Cygwin braucht man dafür nicht, und das Programm hat keine Unix Spezifika.
wo kommt das makeimage her ? (URL!! dann übersetzte ich das euch wieder für cygwin Andreas
@Leo C. das Schreibproblem ist gelöst! Danke! Ich habe die _C.IMG Datei mit dd (in avrcpm_aliados.zip) so auf 256k gebracht: dd if=CPMDSK_C.IMG of=CPMDSK_D.IMG ibs=256k conv=sync Dann auf SD Karte.. d: D>cc mmind.c BD Software C Compiler v1.60 (part I) 35K elbowroom BD Software C Compiler v1.60 (part II) 32K to spare D>clink mmind BD Software C Linker v1.60 Last code address: 1B4D Externals start at 1B4E, occupy 0000 bytes, last byte at 1B4E Top of memory: E405 Stack space: C8B8 Writing output... 42K link space remaining D>mmind Random seed generation.. wait.. hit a key. Guess my 4-digit number...(****); 0000 to abort. Guess 1:0000 You gave up.. Press return to exit. D> Funktioniert also! Ich habe das mal in meinem 'make_disk.bat' eingebaut.. bitte entzippen und die alte Version damit ersetzen.. Peter
Leo C. schrieb: > Nein, ich weiß, daß der Treiber auf das Dateiende testet, und nicht > darüber hinaus schreibt. Stattdessen meldet er einen Fehler zurück. Der > Treiber könnte an der Stelle auch die Datei vergrößern (sofern Platz auf > dem Datenträger), aber der Aufwand dafür ist nach Franks und meiner > Meinung nach unverhältnismäßig groß. ok. Denke ich auch. Wenn man es weiß, ist es leichter die diskimage mind. so groß zu machen, wie diskdefs es definiert. Aktuell wären das ca. 243k gewesen.. richtig? (Bei Gelegenheit muß ich dann mal schauen, was du da schon an Unterstützung von größeren Diskimagesgezauberst hast.. und wie ich das nutzen kann..) Aber ersteinmal die 8-bit Version haben und am laufen haben.. Dann Z80.. Peter
Hallo Andreas, Andreas H. schrieb: > wo kommt das makeimage her ? (URL!! dann übersetzte ich das euch wieder > für cygwin Die Software liegt auf meinem kleinen SVN-Server (Kopie von oben): Die aktuelle Software ist für gewöhnlich hier zu finden: http://cloudbase.homelinux.net/viewvc/avr-cpm/avrcpm/trunk/ Oder besser, mit einem SVN-Client: http://cloudbase.homelinux.net/svn/avr-cpm Als Client für Windows ist tortoisesvn zu empfehlen: http://tortoisesvn.tigris.org/ Wer Verbesserungen und/oder Erweiterungen beisteuern will, kann von mir gerne einen Schreibzugriff bekommen.
hier das makeimage.exe, lauffähig mit den Cygwin.DLLs die Ihr schon habt. /dev/null geht wie unter Linux auch, da die Argumente ja in der Cygwin-Runtime ausgewertet werden. Andreas
Hat jemand schon einen fertigen Schaltplan für die 8bit AVR-Maschine ? Ich würde mir das dann schonmal auf dem Breadboard zusammenstecken wollen und könnte noch vor dem Release der Leiterplatte mit den Tests zu den CCP+BDOS.ASM Quellen beginnen. Andreas
Peter Sieg schrieb: > so groß zu machen, wie diskdefs es definiert. Aktuell wären das ca. 243k > gewesen.. richtig? Fast. Die System-Tracks müssen ja auch noch reinpassen. > > (Bei Gelegenheit muß ich dann mal schauen, was du da schon an > Unterstützung von größeren Diskimagesgezauberst hast.. und wie ich das > nutzen kann..) Folgende sollten gehen: simhd, simh altair 8800 hard disk format MyZ80 YAZE Siehe auch hier: Beitrag "Re: CP/M auf ATmega88" Beitrag "Re: CP/M auf ATmega88" > Dann Z80.. Dazu habe ich vor 2 Tagen etwas geschrieben.
@Andreas: ich wollte mir das auch schon mal auf LR aufbauen. bin aber zeitlich nicht dazu gekommen.. Basis wäre die 4-bit Skizze. Aber Achtung! Völlig geänderte Pinzuordnungen bei 8-bit! D0..D3 des 2ten Drams ist dann D4..D7. Uart ändert sich ebenfalls (HW-Uart -> SW-Uart).
1 | Hi. Ich möchte eine 8-bit Version auf LR aufbauen. |
2 | Wie genau muß ich was verdrahten? Ich gehe im Moment davon |
3 | aus: |
4 | |
5 | 1. 2ten Dram Chip 1:1 mit dem ersten verbinden (Huckepack) - bis auf D0-D3! |
6 | 2. Dann nach Port Declarations aus config.inc gehen: |
7 | ;----------------------------------------------------------------------- |
8 | ; Port declarations |
9 | |
10 | #if DRAM_8BIT /* Implies software uart */ |
11 | |
12 | ;Port D |
13 | .equ RAM_D0 = 0 |
14 | .equ RAM_D1 = 1 |
15 | .equ RAM_D2 = 2 |
16 | .equ RAM_D3 = 3 |
17 | .equ RAM_D4 = 4 |
18 | .equ RAM_D5 = 5 |
19 | .equ RAM_D6 = 6 |
20 | .equ RAM_D7 = 7 |
21 | .equ RAM_A0 = 0 |
22 | .equ RAM_A1 = 1 |
23 | .equ RAM_A2 = 2 |
24 | .equ RAM_A3 = 3 |
25 | .equ RAM_A4 = 4 |
26 | .equ RAM_A5 = 5 |
27 | .equ RAM_A6 = 6 |
28 | .equ RAM_A7 = 7 |
29 | |
30 | ;Port B |
31 | .equ MMC_MOSI = 3 |
32 | .equ MMC_MISO = 4 |
33 | .equ MMC_SCK = 5 |
34 | .equ RAM_A8 = 3 |
35 | .equ RAM_A9 = 4 |
36 | .equ RAM_A10 = 5 |
37 | |
38 | .equ RXD = 0 |
39 | .equ TXD = 1 |
40 | .equ MMC_CS = 2 |
41 | |
42 | .equ P_MMC_CS = PORTB |
43 | .equ P_A8 = PORTB |
44 | .equ P_RXD = PORTB |
45 | |
46 | ;Port C |
47 | .equ RAM_RAS = 0 |
48 | .equ RAM_CAS = 1 |
49 | .equ RAM_OE = 2 |
50 | .equ RAM_W = 3 |
51 | |
52 | .equ P_RAS = PORTC |
53 | .equ P_CAS = PORTC |
54 | .equ P_OE = PORTC |
55 | .equ P_W = PORTC |
56 | |
57 | #else /* 4 bit RAM, hardware uart */ |
Irgendwo hatte ich die anderen Pin's zum Dram auch mal in einer Zeichnung drin gehabt.. finde die aber so schnell nicht mehr.. Peter
Andreas H. schrieb: > Hat jemand schon einen fertigen Schaltplan für die 8bit AVR-Maschine Hier die 8-Bit Variante mit 4 MB x 4 RAM's. @Peter Ja, deine Portzuweisungen sind korrekt. Bei den Chips 4256 existieren dann A9 und A10 halt nicht, ansonsten alles so wie auf der Schaltung. Wenn alles mit 3.3V versorgt wird kann IC2 entfallen, dann aber unbedingt die MMC ziehen wenn über ISP und 5V programmiert wird. Zwei Baustellen, Softwaretest und Hardwareüberarbeitung waren zu viel. Deshalb noch etws Geduld mit der neuen LP. Joe
@Joe: Ich denke wir haben für uns schon ganz schön was geschafft.. Ich bin jetzt endlich mal wieder auf dem aktuelle SW-Stand.. und fat16 sieht gut aus.. bleibt noch das mmc/8-bit Problem.. wenn wir mehr Hardware draußen haben.. gibts auch wieder etwas mehr Mitstreiter.. Also immer mit der Ruhe.. Gut Ding will Weile haben.. Peter
Hallo Leute, meine Hardware läuft noch mit einer sehr alten 8bit Version. Interessant wäre die Z80 Implemention und die Ausnutzung der MMC/SD Karte, am besten alles mit dem Windows PC ladbar. Leider bin ich nicht der Softwarespezialist...CPM 2.2 behersche ich gerade ein bischen...mit echtem Z80. Aber ich lese hier weiter mit... mal sehen was noch wird. Gruß Hans-Werner
Hans- w. Schütz schrieb: > meine Hardware läuft noch mit einer sehr alten 8bit Version. Interessant > wäre die Z80 Implemention und die Ausnutzung der MMC/SD Karte, am besten > alles mit dem Windows PC ladbar. Wenn Du mit "Ausnutzung der MMC/SD Karte" größere CP/M-Diskimages meinst, kannst Du auf die Schnelle mal folgendes ausprobieren: - Software (avr und BIOS) auf neuesten Stand bringen http://cloudbase.homelinux.net/viewvc/avr-cpm/avrcpm/trunk/ - Bootbare SD-Karte herstellen. Entweder mit System in CP/M-Partition oder als CPMDSK_A.IMG auf einer FAT16-Partition - Das MyZ80-Image aus dem folgenden Beitrag runterladen und als CPMDSK_B.IMG auf die FAT16-Partition kopieren: Beitrag "Re: CP/M auf ATmega88" Das Ergebnis sollte ein 8 MB großes Laufwerk B: uter CP/M sein. Wenn Deine cpmtools mit libdsk compiliert sind, kann das Image auch auf dem PC mit Dateien gefüllt werden. > cpmcp -f myz80 ...
Hallo, hier der Entwurf der 8-Bit Minimalvariante. Optionen: - FTDI durch Peters Platine ersetzen - ISP Buchse einsparen (Programmierung über Bootloader) Bitte Vorschläge, Änderungswünsche, Kritik.... Joe
Ich würde den FTDI nicht ersetzen, sondern zusätzlich eine Stiftleiste vorsehen, damit man wahlweise den FTDI oder Peters Adapterplatine oder meinen MAX232 verwenden kann. Ich kenne jetzt die Belegung der Stiftleiste nicht, aber wenn dort TxD, RxD, GND und 3V3 drauf wären, wäre ich schon sehr zufrieden. Auf die ISP-Buchse würde ich nicht verzichten. Das habe ich bei einem anderen Projekt (notgedrungen) und vermisse die Möglichkeit, direkt über ISP programmieren zu können, doch sehr.
Peter Sieg schrieb: > GND / Pin 8 am AVR ist auch mit GND verbunden Danke, die nicht mehr vorhandene Verbindung war dem Löschen geschuldet. Ich würde den FTDI sozusagen an den Kopf der Platine setzen, dann eine Stiftleiste um mit Peters Adapter kompatibel zu sein und dann den Rest. Die bisherige USB Buchse würde ich gerne durch einen Stecker ersetzen, siehe hier: http://www.reichelt.de/USB-FireWire-Stecker/USB-AWF/index.html?;ACTION=3;LA=444;GROUP=C126;GROUPID=3213;ARTICLE=51993;START=0;SORT=artnr;OFFSET=16;SID=13Tagj738AAAIAAE1pNGY20e735febd5684b463a3fad7e4579eb3 Die derzeitige Kabelverbindung ist immer so schwer, dass alles vom Schreibtisch fliegt :-( ISP lasse ich drauf. Joe
Hier die die Version mit USB-Type A Stecker und Adapter zur "Peterplatine" Peter, bitte mal schauen, ob die Anschlußbelegung korrekt ist. Gerade bei TXD und RXD bin ich mir nicht sicher weil ich nicht weiß wo diese Pins am IC liegen. Joe
Hallo Peter, gibt es das Modul auch in Deutschland zu kaufen? Oder nur in Hongkong.. habe da sehr schlechte Erinnerungen.... Anmerkung zur Schaltung... Wo bleiben diejenigen welche noch eine serielle Schnittstelle haben... mir fehlt da ein Spannungsregler 3,3V... Gruß Hans-Werner
Ob es das Modul noch - zu diesem Preis - woanders gibt könnte google klären. Ich habe da mit der Bestellung sehr gute Erfahrungen gemacht! Ansonsten bleibst ja noch FT232RL + USB Buchse. Der FT232 stellt ebenfalls 3,3V zur Verfügung. Und wenn das immer noch nicht reicht.. 3,3V Netzteile gibt es bei Pollin + ungebautes Handydatenkabel = TTL<->USB Schnittstelle. Peter
@Joe: Wenn du dann bei Eagle und dem layouten bist.. kannst du bitte die 4-bit Platine auch noch mal anpassen.. Da war ja Pin 24 - /WE und Pin 27 - IO3 getauscht worden.. ich bekomme das irgendwie in eagle nicht hin.. dann hat man, falls man noch mal die 4-bit Version fertigen will gleich die richtige Platine.. Danke, Peter
Dankeschön! ;-) Für die kommende Easy-8-bit Platine bitte hinter dem CP2102 Adapter vor der Versorgung der IC's+SD etc. in der +3.3V Leitung einen Jumper vorsehen für einen Ein-/Ausschalter.. so kann man schon einstecken und die USB Schnittstelle wird erreichbar.. Terminalprogramm kann gestartet werden und dann erst kann man dem Gerät seinen Strom geben und kann so die Bootmeldungen auch im Terminalprogramm verfolgen.. ohne diese Schaltmöglichkeit sieht man nach <Return> nur noch den A> Prompt.. Peter
@Peter: und ich dachte, dazu ist der RESET-Taster, oder reseted der auch den USB-UART ? Andreas
Ich kann die 3.3V trennen, jedoch kann der Bootvorgang wie von Andreas beschrieben über den RESET Taster am AVR ausgelöst werden, was RESET auf der CP2102 Platine macht kann ich nicht sagen, da ich die Schaltung nicht kenne. Möglicherweise sollte hier der Jumper rein. Joe
@Andreas+Joe: Ihr habt Recht. An den Resetschalter hatte ich gar nicht mehr gedacht (fehlt auf meinem LR Aufbau). Das reicht.. Habe auch mal das myz80 8MB Image probiert. Klappt wunderbar.. 8MB große Disketten.. wie bekommen wir die nur gefüllt.. ;-) Muß mir jatzt mal die diskdefs Einträge für myz80 heraussuchen.. Wer hat denn ggf. noch andere Anwendungen, die jetzt schon mit emulierter 8080 CPU laufen..? Gibts da schon Turbo Pascal für? Ich habe mal ein Wordstar Diskimage mit dem aktuellem Bios angehangen. Hier noch ein eagle3D Bild der 4-bit V1 Platine.. Peter
Peter Sieg schrieb: > Wer hat denn ggf. noch andere Anwendungen, die jetzt schon mit > emulierter 8080 CPU laufen..? Gibts da schon Turbo Pascal für? Beitrag "Re: CP/M auf ATmega88"
Inzwischen habe ich auf meinem Netbook unter Windows den CP/M Emulator aliados[1] installiert. Funtioniert ganz gut, und scheint etwas einfacher zu sein als zxcc. Mit dem aktuellen Makefile im cpm-Zweig[3] kann jetzt auch unter Windows ein Disk-Image mit IPL+CPM+BIOS etc. erstellt werden. Dazu müssen make, cpmtools[4], aliados und das ein oder andere Kommandozeilenprogramm im PATH gefunden werden. Wer nicht gleich ein komplettes Cygwin oder mingw installieren möchte, kann es ja mal mit den UnixUtils[5] versuchen. Sehr einfach zu installieren. und funtioniert bei mir wunderbar. Das Ganze ist sicher noch Verbesserungsfähig. Ich würde mich freuen, wenn das mal jemand ausprobieren würde. Außerdem habe habe ich mal die Diskimages (*.ydsk Dateien), die bei dem CP/M-Emulator YAZE-AG[6] "mitgeliefert" werden, getestet. Es können alle gelesen werden. Leider sind nur wenige davon für uns interessant, da entweder zu speziell oder nur für Z80. Am interessantesten dürften der Hi-Tech C Compiler und vielleicht die Unixlike Tools sein. Damit die Image-Dateien von unserem System gelesen werden können, habe ich sie CPMDSK_A.IMG .. CPM_M.IMG umbenannt und jeweils eine Hand voll auf eine FAT16 Partition auf der Speicherkarte kopiert. Damit die mit den "höheren" Buchstaben auch gelesen werden können, war leider ein kleiner Bugfix notwendig. Im avr-Zweig des SVN-Archives gibt es also auch ein Update. [1] http://www.arrakis.es/~ninsesabe/aliados/ [3] http://cloudbase.homelinux.net/viewvc/avr-cpm/avrcpm/trunk/cpm/ [4] http://www.cpm8680.com/cpmtools/ [5] http://unxutils.sourceforge.net/ [6] http://www.mathematik.uni-ulm.de/users/ag/yaze/
Peter Sieg schrieb: > Prima! Da ich kein SVN inst. habe.. welche Datei(en) muß ich mir > herunterladen..? Um alles herunter zu laden, begebe man sich z.B. hier her: http://cloudbase.homelinux.net/viewvc/avr-cpm/avrcpm/trunk/ Dann klicke man rechts oben auf "Download Tarball". Wenn man nur einen Teil (z.B. den CP/M-Teil) haben will, steige man in das entsprechende Directory hinab, und klicke eben da auf "Download Tarball". Wenn man nur eine einzelne Datei herunter laden will, klicke man auf den Namen der Datei oder auf die Revisionsnr. Anschließend findet man rechts oben "Download File" (Imho umständlich und nicht empfehlenswert). Wenn man aber öfters mal nur die geänderte(n) Datei(en) laden will, installiert man (unter Windows) am Besten TortoiseSVN (http://tortoisesvn.tigris.org/). Das ist einfach eine Erweiterung des Windows Filemanagers um die SVN-Client-Funktionen (Siehe Anhang).
Peter Sieg schrieb: > Muß mir jatzt mal die diskdefs Einträge für myz80 heraussuchen.. In meiner diskdefs ist folgender Eintrag
1 | # MYZ80 hard drive (only works with libdsk, because it has a 256-byte header) |
2 | diskdef myz80 |
3 | seclen 1024 |
4 | tracks 64 |
5 | sectrk 128 |
6 | blocksize 4096 |
7 | maxdir 1024 |
8 | skew 1 |
9 | boottrk 0 |
10 | os 3 |
11 | end |
Der war wahrscheinlich in der Original-Datei, bin mir aber nicht sicher. > Wer hat denn ggf. noch andere Anwendungen, die jetzt schon mit > emulierter 8080 CPU laufen..? Ich hatte ja schonmal die die Diskimages vom simh Altair 8800 Emulator emphohlen: Beitrag "Re: CP/M auf ATmega88" Für die Spielkinder unter uns habe ich mal das Basic- und das Games-Image auf HD-Format umkopiert und als Zip hier angehängt. Viel Spaß damit.
Von simhd kann jetzt auch gebootet werden. Um ein solches Bootimage zu erkennen, muß im 1. Sektor (ipl) eine Marke vorhanden sein. Das cpm/Makefile kann diese Marke erzeugen. Z.B. so:
1 | $ make clean |
2 | $ make diskimage IMGFORMAT=simhd |
Oder das Makefile entsprechend anpassen. Ein fertiges Image habe ich hier mal angehängt.
Na.. ein bißchen ruhig geworden hier..? @Joe: Stand 8-bit Simple Platinen? Ich hatte hh3au (oder so ähnlich) mal per Mail kontaktiert, ob er die Z80 Emulation nicht noch abschließen könnte.. ohne jede Antwort.. :-( Gruß Peter
Peter Sieg schrieb: > @Joe: Stand 8-bit Simple Platinen? Ich mußte erst noch ein anderes Projekt abschließen. Der Schaltplan steht ja, das Layout auch in den Grundzügen, es muß nur noch "schön" gemacht werden. Gruß Joe
moin moin, z80 liegt gerade aus gesundheits gründen auf eis....... will wer anders das beschleunigen? g. Horst
Ah. Hallo Horst. Schön wieder von Dir zu hören. Ich zumindest nicht aktuell.. Gut Ding will Weile haben. Freue mich das du noch mit im Boot bist! Gesundheit geht vor! Alles Gute derweil! Falls du aber irgendwann schon einen lauffähigen Zwischenstand hättest, würde wir den gerne schon mal im Code mit aufnehmen. Gruß Peter
Ich hab mal eine Frage ... Ich weiß nicht ob die in dem Thread hier schon gestellt worden ist oder nicht, aber ich würd gerne wissen ob es vom Timing her möglich ist die Ansteuerung des DRAMs in C zu machen. Ich stelle mir das so vor das ich 3 Routinen habe. Eine liest ein Byte, eine zweite schreibt ein Byte und eine dritte macht den Refresh. Damit der Refreh immer regelmäßig kommt wird die Refresh-Routine in einen Timer-Interrupt gepackt der schneller ist als die notwendige Refresh-Zeit. Die Lese und Schreib-Routine kann den Interrupt sperren damit die Ansteuerung nicht verfusselt wird, daher wird der Refresh auch öfter ausgeführt als notwendig, so die Idee. Ich selbst habe das CP/M noch nicht ausprobiert da mich in erster Linie die Hardware (DRAM, SD-Karte und der FTDI) als kompakte Platform für Bastelzwecke interessiert. Wäre mein "Vorhaben" so realisierbar, oder ist das Timing des DRAMs zu kritisch, alsdass es in C umsetzbar wäre zw ist ?
ein Hallo an alle! Ich habe seinerzeit auch mit dem legendären Z80 (bzw. U880) gearbitet und mir so manchen SBC damit gebaut. Das letzte war der Mugler-PC mit CPM 2.2, danach habe ich den Z80 und CPM aus den Augen verloren. Hatte neben Arbeit und Familie nicht mehr genug Zeit für ein solch Zeitintensives Hobby und nach einem Arbeitstag am PC auch keine rechte Lust mehr. Mit großem Interesse habe ich diesen Tread gelesen. Leider scheint er aber einzuschlafen. Ich hätte Interesse an 2 Platinen der "großen" Version mit 168'er, zwei 4Mx4 dRAM und Header für Micro VGA sowie Peter's USB<->Seriell Wandler. Gibt es hierzu schon ein EAGLE - Project? Wie weit ist der Arbeitsstand bei der Z80 - Emulation, kann mann diesen irgendwo einsehen? Ich könnte mir vorstellen, dass ich mich an dieser Stelle einklinke. Da die 8080 Codes ja offensichtlich funktionieren, sollte die Einbindung der zusätzlichen Z80 spezifischen OP-Codes ja reine Fleißarbeit sein - oder sehe ich das falsch? Gruss Edgar
Horst S. schrieb: > moin moin, > > sende mir doch bitte mal deine i-mehl addr. edgar. > horst Ist unterwegs... Gruß Edgar
Rene B. schrieb: > Wäre mein "Vorhaben" so realisierbar, oder ist das Timing des DRAMs zu > kritisch, alsdass es in C umsetzbar wäre zw ist ? Hallo Rene, kritisch ist da nix, nur deutlich langsamer. Zum Anfangen könntest Du mal die angehängten Dateien versuchen. Compiliert fehlerfrei, ist aber nicht getestet. Für den Refresh kann man auch die ASM-Datei verwenden. Die Routine verändert keine Register. Man kann sie notfalls auch in ein C Inline-Statement setzen. Leo
@leo Danke schön. Die Geschwiondigkeit ist erstmal nicht so wichtig. Hauptsache ich weiß das es da nichts superkritisches vom Timing her gibt. Das die DRAMs ja eig. "dumm" und recht einfach gehalten sind denke ich auch das es nicht so kritisch ist, aber wollte nochmal andere Meinungen dazu hören. Testen werd ich es dann mal. Mit dem ASM in C hatte ich auch schon überlegt, wollte aber erstmal alles in C machen. Vielen Dank noch.
Hier ist noch der Refresh:
1 | #define RAM_RAS 0
|
2 | #define RAM_CAS 1
|
3 | #define RAM_OE 2
|
4 | #define RAM_W 3
|
5 | |
6 | #define P_RAS PORTC
|
7 | #define P_CAS PORTC
|
8 | #define P_OE PORTC
|
9 | #define P_W PORTC
|
10 | |
11 | |
12 | ISR(TIMER2_COMPA_vect, ISR_NAKED) |
13 | {
|
14 | P_CAS &= ~_BV(RAM_CAS); |
15 | P_RAS &= ~_BV(RAM_RAS); |
16 | P_RAS &= ~_BV(RAM_RAS); /* delay */ |
17 | P_RAS |= _BV(RAM_RAS); |
18 | P_RAS |= _BV(RAM_RAS); /* delay */ |
19 | P_RAS |= _BV(RAM_RAS); /* delay */ |
20 | P_RAS &= ~_BV(RAM_RAS); |
21 | P_CAS |= _BV(RAM_CAS); |
22 | P_RAS |= _BV(RAM_RAS); |
23 | reti(); |
24 | }
|
Die #define packt man sinnvollerweise in die Headerdatei. Außerdem hatte ich vergessen zu erwähnen, daß die C-Routinen nur mit der 8-Bit Version funktionieren, und nur 64 kByte adressieren können. Beides kann man natürlich ändern und ich überlasse es dem geneigten Leser gerne zur Übung. ;)
f.e.sch schrieb: > Gibt es hierzu schon ein EAGLE - Project? Ja, gibt es. Ich habe es mal hier aktualisiert. http://www.mikrocontroller.net/articles/AVR_CP/M
Joe G. schrieb: > Ja, gibt es. Ich habe es mal hier aktualisiert. > http://www.mikrocontroller.net/articles/AVR_CP/M Hallo Joe G., das sieht ja echt gut aus - Respekt! Wird es eine Sammelbestellung für diese 2.(grosse) Variante geben? Wenn ja, dann melde ich schon einmal 2 Platinen für mich an. Mit welchem Preis pro Platine müsste man rechnen? Gruss Edgar
Hat etwas gedauert... Hier nun die 8-Bit Variante 3.0 als "CP/M-Stick". Bitte wie immer kritisch durchsehen. Joe
Hallo Joe, wird bei dieser Variante die Platine vom USB mit Strom versorgt? dann hätte ich Interesse an 2 Platinen...vorausgesetzt es wird mal etwas mit der Implementierung des Z80 Codes und mit dem Datenaustausch unter Windows. Gruß Hans-Werner
@Hans-Werner Diese Variante kann über USB mit 5V versorgt werden oder mit 3.3V über den Steckverbinder für Peters Adapter. Die interne 3.3V Versorgung wird bei der Bestückung mit dem FT232 wieder über den internen Regler realisiert. Ansosnten entspricht die Schaltung fast der ursprünglichen Version bis auf die Datenbreite von 8-Bit. Der Datenaustausch unter Windows sollte mit der FAT-Version kein Problem sein. Die MMC-Karten können damit nur über Windows beschrieben werden. Linux ist nicht notwendig. Joe
@Joe: Na, das sieht doch prima aus! ich hätte gerne auch 2 Platinen. Gruß Peter
@Joe: auch ich würde gern 2 Platinen haben wollen @Peter: handelt es sich hier um die AVRCPM-Platine, für die seinerzeit ein Aufruf (auch im robotronforum) gestartet wurde ?! Ich habe in Sachen Hardware ja schon seit einigerzeit nichts mehr gelesen. Gruss, Andreas
na dann... 2 x Hans-Werner 2 x Peter 2 x Andreas 2 x Joe Wer noch? Ab 10 geht es los.
Hallo, ich bin zufällig über dieses Projekt gestolpert. Meine Hochachtung! Ich habe früher auch mal mit CPM gespielt. Ich habe mit dem CPM nichts vor finde aber die Platine für etwas anderes interressant. Um eventuell das noch zu unterstützen würde ich auch eventuell Platinen nehmen. Gibt es da einen aktuellen Schaltplan und Eagle-Files bzw. SD-Kartenslotbauform? Was kostet die Platine? MfG Achim
GPS'ler schrieb: > Gibt es > da einen aktuellen Schaltplan und Eagle-Files bzw. SD-Kartenslotbauform? > Was kostet die Platine? Einen Schaltplan bzw. die Eagle-Files gibt es etwas weiter oben unter avr_cpm.zip Die Platine kostet ca. 10€-12€. Das kommt noch auf die Gesamtmenge an.
Hallo, der Stick gefällt mir gut. Damit die 10 Stück voll werden bin ich mit zwei dabei. Gruß, Günter
Hallo @Joe, vielen Dank für Deine Info. Für mich wäre wünschenswert, dass man die 3,3V von extern einspeisen könnte. Jumper/Pfosten an R2 würde ohne grossen Aufawand gehen. Für mich ist die interne 3,3V Versorgung etwas wenig (50mA). Ist das nicht auch für eure Anwendung grenzwertig (SD_Karte,IC5,IC6,IC1). Habe das aber nicht explizit geprüft. Besser wäre natürlich ein eigener LowDropRegler von den 5V als Zusatz. Nur zum Hintergrund: Aber das hat mit dem eigentlichen Projekt nichts zu tun.Ich würde IC5 und IC6 nicht bestücken und da einen GPS Empfänger dranhängen bzw. die ADC Eingänge und könnte dann einfach einen Logger daraus machen. MfG Achim Ps.: Sorry für das abschweifen vom eigentlichen Threadthema
Hallo, ich bin von dem Projekt begeistert. Seit einem halben Jahr verfolge ich die Beiträge. Nun habe ich Blut geleckt und will mit einem Freund die Platine aufbauen. Ich bestelle vier Platinen. Gruß Peter
GPS'ler schrieb: > Für mich wäre wünschenswert, dass man die > 3,3V von extern einspeisen könnte. Wenn der FT232 nicht bestückt wird, können die 3.3V auch über JP3 Pin 1 eingespeist werden. Das ist für alle Anwendungen, die einen anderen USB Adapter verwenden wollen. Wird der FT232 selbst bestückt und man möchte die 3.3V über JP3 Pin 1 einspeisen muß die Verbindung zum Regler des FT232 aufgetrennt werden. Das habe ich nun mit JP1 realisiert. Erfolgt die Stromversorgung über USB, kann statt JP1 eine Brücke eingelötet werden. Dank Leo C. haben wir ja immernoch die beiden I2C Leitungen des AVR frei. Auch wenn es noch keine Anwendung dazu gibt, habe ich sie nun auf JP5 gelegt. Paltz war ja noch auf der Leiterplatte. Joe
Hallo das ist ne feine Sache, So kann man das auch für andere Zwecke nutzen. Kann ich noch den Hintergrund erfahren, warum RX/TX vom Atmega nicht für die USB Komminikation benutzt wird? Wird das da Software mäßig gemacht? In meinem Fall ist das gut, da kann man dann ein GPS-Modul dranhängen. MfG Achim
Port D des AVR liegt vollständig am 8-Bit Datenbus des RAM. Damit müssen die Daten nicht umständlich zusammengestückelt werden wie in der Urversion. Kein Vorteil ohne Nachteil. Die V24 Schnittstelle läuft nun über andere Pins und wird per Software nachbgebildet (siehe Quelltext von Leo C.).
Hallo in der Ecke bei R2 oder C10 würde noch gut eine LowDrop 3,3V Spannungsregler als als Bestückungsoption für externe 5V bzw. USB 5V passen...... MfG Achim Ps: Ich bin mit 3 Platinen dabei...
Hallo @Joe, vorneweg, ich habe noch nie eine Leiterplatte mit Eagle entworfen und dadurch keinerlei Erfahrung in dieser Richtung! ....aber kann es sein, dass die SD-Karte Spiegelverkehrt ist und würde nur passen, wenn das auf der Unterseite wäre. Ich habe mehrere SD-Kartenhalter und wollte testen ob diese in etwa passen. Aber leider nein. Dabei ist mir aufgefallen,dass die SCDA... falsch angeschlossen sein müßte.Im Manual von denen steht "Viewed from the mounting face side". Ich habe dein Layout ausgedruckt und ne SD Karte draufgelegt. CS ist der erste bzw. 2. Pin nach der Abschrägung.... Eventuell liege ich voll daneben.....deshalb prüfen.... MfG Achim Ps: Eventuell kannst du die Pads nach recht verlängern (Falls das bei euererKarte nicht stört) , dann würde es auch für meine passen... Anbei die LIB
Ein 3.3V Regler mit T092 Gehäuse ist nun integriert. Muß ja nicht bestückt werden. Die SD-Card ist korrekt. Schau mal hier: http://www.mikrocontroller.net/articles/AVR_CP/M Die Karte wird immer so gesteckt, dass die Kontakte oben liegen, d.h. die Schräge ist auf der linken Seite. Joe
Hallo @Joe danke für die Aufklärung. Da wird die Karte mit den Kontakten nach oben reingesteckt. Kannte ich bisher nicht. Also Sorry... Ich brauche das nicht, aber ist die Taktleitung vom FT... über den Jumper zum Atmega nicht relative lang... >Ein 3.3V Regler mit T092 Gehäuse ist nun integriert. Muß ja nicht >bestückt werden. ..super an welchen hast du da gedacht (Verfügbarkeit CSD hat da nur TO-220) Wann geht da die Bestellung los? MfG Achim
Hallo, die Version 3.0 macht wirklich einen hervorragenden Eindruck. Ich nehme auch 2 Stück von den Platinen. Wie macht ihr das mit der Verrechnung? siggi
GPS'ler schrieb: > ..super an welchen hast du da gedacht LP2950 z.B. beim großen C @Siggi und GPS'ler, bitte eine Mail mit eurer Versandadresse an mich.
Bei einer derzeitigen Abnahmemenge von 20 Stück würde eine Platine 9,80 € + Porto kosten. Ich warte noch die kommende Woche auf Interessenten bzw. die Kontaktdaten. Am Freitag würde ich dann eine Mail an alle Interessenten in meiner Kontaktliste senden. Übers Wochenende sind dann noch Korrekturen möglich und am 25.07. würde ich dann die Bestellung auslösen. Joe
Hallo @Joe von Reichelt gibts den LE 33 CZ der müßte doch auch gehen oder? Hast du da auch die entsprechenden C's vorgesehen? MfG Achim Ps: Ist E-Mail an dich nur mit Anmeldung möglich?
GPS'ler schrieb: > @Joe von Reichelt gibts den LE 33 CZ der müßte doch auch gehen oder? JA > Hast du da auch die entsprechenden C's vorgesehen? JA > Ps: Ist E-Mail an dich nur mit Anmeldung möglich? JA
Dieses Projekt ist EINFACH - NUR - GEIL! Ich hätte damals(tm) meinen rechten Arm für eine CP/M Maschine gegeben. Hab gelötet und gefrickelt wie ein Wilder, aber am Ende wurde es dann doch ein ZX80 :-) Ich würde auch eine Platine (USB Stick) abnehmen.
Grad gefunden. DRAM´s für 99 cent, leider nur SMD. http://www.lantronic-et.de/index.php/cat/c511_D-RAM-xxK-x-4.html
Ich reihe mich auch mal in die Riege der Leute ein die dieses Projekt Klasse finden :-) Die neue Version hat echt was. Kann mit der alten Version ja noch bis zum Sankt-Nimmerleins-Tag spielen (ohne die ursprüngliche CP/M-Version wirklich zu nutzen :-)))) Was ich bei der neuen Version echt witzig finde ist das I2C herausgeführt ist. Freut mich. Echt gelungen.
MatthiasM schrieb: > aber am Ende wurde es dann > doch ein ZX80 :-) ZX80 revival :-) http://home.micros.users.btopenworld.com/zx80/zx80.html
Als erstes ein Danke für das Design und die Organisation der Platine. Ich nehme natürlich auch eine, auch wenn es für mich eine Herausforderung sein wird, den FT232 auf die Platine zu löten.
Der hier ist deutlich billiger und einfacher zu löten als der FT232 : http://www.reichelt.de/ICs-M-MN-/MCP-2200-I-SO/index.html?;ACTION=3;LA=444;GROUP=A217;GROUPID=2914;ARTICLE=109740; Benötigt aber noch einen 12MHz Quarz. Das ist ein vorprogrammierter PIC18F14K50. Den PIC18F14K50 gibts auch in DIP für ein paar Cent mehr, aber da müsste man halt noch die USB->UART Firmware aufspielen.
Andreas Jakob schrieb: > Grad gefunden. > DRAM´s für 99 cent, leider nur SMD. Ist ja echt witzig, was ihr so findet. Allerdings lassen sich diese SOJ Teile noch schlechter löten als der FT232 (siehe Variante 2). Die 4C4256 RAM's sind oft noch als Amiga Ramerweiterung in der Bucht aufzutreiben.
@ alle Interessenten der Version 3.0 Alle die sich bei mir per Mail wegen einer leiterplatte der Version 3.0 gemeldet haben, haben eine Mail mit ihrer Menge, dem Preis und weiteren Informationen erhalten. Wer KEINE Mail erhalten hat, der ist bei mir nicht erfaßt, Sorry. Entweder habe ich es dann verträumt oder ihr habt euch noch nicht gemeldet. Bitte dann schnellstens nachholen. Joe
@Joe: Prima, das du das wieder organisiert- Danke! Evtl. wäre es sinnvoll (wenn du dir das 'aufbürden' willst), die SD Slots von CSD gleich mitzubestellen. Ab 25 Stück kosten die <2€ / Stück..? Ansonsten müßte die wohl jeder selbst bestellen. Dann kostet einer 3€ + Versand. Zeit wäre ja noch.. Kannst du bitte die aktuellen Eagle Dateien hier einhängen? Ich bin noch an einer 'Quelle' von einigen DRams 4x256 DIP dran aud dem F64. Leider liest er zur Zeit keine Nachrichten.. Gruß Peter
In der Tat, 2,06 € incl. Versand bei einer Abnahmemenge von 25 Stück. Ich lass mich breitschlagen. Wer möchte? Ab 25 bestelle ich. Joe
Ich nehme gerne 2. Falls noch welche an den 25 fehlen auch gerne mehr, da ich die auch noch für andere Projekt verwenden kann.. Peter
Joe G. schrieb: > In der Tat, 2,06 € incl. Versand bei einer Abnahmemenge von 25 Stück. > Ich lass mich breitschlagen. Wer möchte? Ab 25 bestelle ich. Ich nehme dann zu meinen 2 Platinen auch gerne die 2 SD-Adapter. Gruß und Dank, Frank
Hi Leute, Das Projekt ist einsame Spitze! Faszinierend, was man mit einem AVR alles anstellen kann. Ich wollt Euch bei dieser Gelegenheit ein ähnliches Projekt vorstellen, welches ich gerade umgesetzt habe. Beitrag "Intel 8080 CP/M Emulator für Mikrocontroller (ARM7, ARM9, CortexM3, AVR32)" In diesem Fall laufen sogar zwei Betriebssysteme auf dem Mikrocontroller. Nut/OS (kleines Mikrocontroller Echtzeit Betriebssystem) und CP/M. Nut/OS dient dabei lediglich als "Wirtsplattform" um z.B. Zugriffe auf die SD Karte zu ermöglichen. Das ganze läuft auf allen von Nut/OS unterstützten Platformen mit mind. 80 KByte RAM (ARM7, ARM9, Cortex M3, AVR32, ...) Viele Grüße, Ole PS: Anbei ein screenshot des laufenden CP/M Systems mit WordStar Startscreen. (Ausgaben über serielle Schnittstelle im minicom dargestellt.)
Die derzeitige Interessentenliste ist an alle per Mail raus. Bitte nochmals überprüfen und gegebenenfalls korrigieren. Wünsche nehme ich noch bis Sonntag entgegen, dann ist Wunschende für die Version 3.0. Am Montag bestelle ich. Joe
Hallo CPM/AVR Experten, ich habe mich da jetzt mal warmgelesen und Geschmack gefunden. Ich habe nun mit SVN das Projekt runtergeladen und zuerst mal versucht den AVR Assemblerteil zu übersetzen. Das Runteladen ist kein Problem (klar!) aber das Übersetzen schon. zB: AVRASM: AVR macro assembler 2.1.42 (build 1796 Sep 15 2009 10:48:36) Copyright (C) 1995-2009 ATMEL Corporation D:\www\Atmel\UsbStick\SVN_Source\avr-cpm\avrcpm\trunk\avr\8080int.asm(55 ): error: printnewline: Unknown instruction or macro D:\www\Atmel\UsbStick\SVN_Source\avr-cpm\avrcpm\trunk\avr\8080int.asm(56 ): error: printstring: Unknown instruction or macro D:\www\Atmel\UsbStick\SVN_Source\avr-cpm\avrcpm\trunk\avr\8080int.asm(56 ): error: syntax error, unexpected STRING Assembly failed, 3 errors, 0 warnings Bevor man da jetzt anfängt zu suchen die Frage: -Gibt es einen AVR-Studio-Projektfile? Das Ganze soll unter Windows XP erstellt werden. Einige haben das ja auch unter Windows gemacht und man muß ja das Rad nicht neu erfinden.... Um diesen Thread nicht mit solchen Problemen zu "belasten" sollte man eventuell einen eigenen Thread "Software CP/M Klinik" aufmachen. Es geht nicht darum, dass jemand Fehler sucht, sondern da scheint doch was "generelles" bei Windows zu fehlen (Includes..etc)
Hi. Arbeite auch unter Windows und hänge mal mein ganzes AVR CPM Verzeichnis hier ein. Kann ggf. nicht unbedingt der letzte SVN Stand sein und aktuell habe ich nur 4-bit Hardware. Peter
Hmm, also ich persönlich würde da ja persönlich einen PS/2 Anschluss und einen Monitoranschluss dran bauen, oder das ganze in ein möglichst kleines Gehäuse zu packen. So als Art Uhrencomputer.
Hallo @Peter vielen Dank für das Projekt. Das ist zunächst mal auch nicht übersetzbar, da viele spezielle absolute Path Angaben im BAT file sind. Was mich aber zunächst sehr wundert ist zum Beispiel, dass in dem "8080int.asm" kein "#include "macros.inc" drin ist. Sowohl bei dir, als auch im runtergeladenen Projekt und das dann bei euch übersetzbar sein soll. ...aber ich muß da zuerst mal wieder ASM Grundlagen lernen. Ich habe vor ca. 30 Jahren das letzte mal Assembler (8008/8080/8086) gemacht. Ich werde versuchen da ein gültiges AvrStudioProjekt zu basteln, so wie wenn man was vom Radig etc,,, runteläd und problemlos übersetzen kann. Ich habe eine gehende Windows XP AVR Studio 4 Installation ,it der ich bisher problemlos Projekte übersetzen konnte. Ausserdem eine WINAVR-20100110 Standardinstallation Müssen wir aber hier wirklich nicht vertiefen. Ich versuche mich da durchzukämpfen. Vielen Dank Achim Ps. Problem ist noch die Beschaffung der DRAMS für die V 3 (für mich)
Frischling schrieb: > Was mich aber zunächst sehr wundert ist zum Beispiel, dass in dem > "8080int.asm" kein "#include "macros.inc" drin ist. Sowohl bei dir, als > auch im runtergeladenen Projekt und das dann bei euch übersetzbar sein > soll. Hallo, nur die Datei "avrcpm.asm" sollte durch den Assembler geschickt werden. Alles andere wird included. Leider habe ich keine Zeit, auf Details einzugehen. Ab Dienstag wirds wieder besser.
Hallo Leo,
vielen Dank.Soweit war ich noch nicht vorgedrungen.....Ich hab halt mal
alle genommen.
>>>Assembly complete, 0 errors. 0 warnings
Super! Hat mir für den Einstieg sehr geholfen! Dachte ich mirs doch,
dass es "einfach" gehen muß. Sorry für die "verfrühte" Nachfrage.
Vielen Dank
Achim
Für alle, die sich schon mal im Vorfeld mit der Software befassen wollen. Unter dem Punkt Downloads http://www.mikrocontroller.net/articles/AVR_CP/M habe ich drei CP/M Images reingestellt die unter Windows nur auf eine SD-Card kopiert werden müssen. Um selbst ein Image zu erstellen, sollten wir eine kleine Anleitung mit den notwendigen Tools verfassen, was meinst du Peter?
Hallo @Peter ALLES klar, jetzt wo du es sagst.....she ich das auch. Mein Urproblem war, dass ich "avrcpm.asm" als "Entry File" gestzt habe. Wie oben schon geschrieben ich habe zu früh gefragt! Man sollte eben erst den Verstand einschalten, denken und dann fragen....... Nochmals vielen Dank @Leo und @Peter für eure Hilfe. Jetzt scheine ich in der Spur zu sein. Man wird halt älter.... Sorry Achim
Aufbauhinweise V3 Die Leiterplatten sollten bald bei euch eintreffen. Deshalb für alle, die neu dabei sind und natürlich auch für alle anderen, einige Aufbauhinweise. 1. Wenn die 5V aus der USB-Schnittstelle bezogen werden dann muss JP1 gesteckt sein. Dabei wird der interne 3.3V Regler des FT232 genutzt. 2. Wenn die 5V über JP3 zugeführt werden, JP1 offen lassen. 3. Wird der AVR über einen externen Quarz getaktet, Pin2 und Pin3 bei JP2 brücken. 4. Erhält der AVR seinen Takt über den FT232, dann Pin1 und Pin2 bei JP2 brücken. Der FT232 muss jedoch vorher über ein Tool, welches von der FTDI Webseite bezogen werden kann, programmiert werden. CBUS0 muss dann auf Taktausgabe geschaltet werden. 5. ACHTUNG! Wer den AVR über die ISP Schnittstelle mit externen 5V programmiert MUSS vorher die SD-Card ziehen, sonst liegen die 5V an der SD-Card! Das übersteht sie nicht. Viel Spaß beim Aufbau! Joe
Platine ist angekommen - vielen Dank! Gibt's die Eagle-Files irgendwo? Sonst wird das Bestücken was schwierig :-)
Hallo meine Platinen sind auch angekommen. Vielen Dank. FRAGE: Kann mir noch jemand passende RAMS abgeben? MfG Achim
So hier Bilder meiner ersten Platine. Läuft alles! Was ich festgestellt habe: Das größte Problem sitzt meistens vor dem Rechner ;-) Hatte TTL-USB Adapter falsch herum angeschlossen. ;-) Die FAT16 Routinen sind wählerisch was die Karten angehen. 3 gehen nicht; 2 gehen (1GB Platinen; Noname). Hier gibt es einige Parallelprojekte (sd2iec) wo man ggf. schauen kann, ob man Code hierzu übernehmen kann.. Ach ja.. Speed = 2,623 bei 8-bit und 30MHz (5,293 bei 30MHz und 4-bit). Peter
@Achim: Kann dir 2 getestete Rams zusenden für 5€ unversichert. Wenn Interesse = Mail senden. @alle: Leider hat sich mein vermutlicher Ramlieferant aus dem Forum64 seit Wochen/Monaten nicht mehr gemeldet.. von daher sind meine Rams auch begrenzt. Ich kann max. noch 2x2 Rams abgeben. Peter
@alle: Ich habe gerade gesehen, bei Kessler-electronic gibt es die RAM-Speicher für 3,89 Euro das Stück zu kaufen. Siggi
Kessler hat das RAM aber offenbar nur im SOJ- bzw. ZIP-Gehäuse, nicht aber in DIP. Mir fehlen leider auch noch RAM-Chips. Nils
Peter Sieg schrieb: > Läuft alles! Prima! Nett auch eine Wahl der Quarzfrequenz. Natürlich muß die Version CP/M V3.0 mit 30 MHz laufen! @alle Ich bin auch noch an einer Quelle für RAM's. Ansosnten muß ein Adapter von SOJ auf DIP her.
Hallo, meine Platinen sind heil angekommen, danke nun erstmal löten... Gruß Hans-Werner
Meine extra Rams sind alle vergeben. Hier gibts noch 4 Stück zum Preis von 1,50€/Stück - Bestell-Nr.: 100155--: info@Hefner-Electronic.de Sehr geehrter Herr Sieg, wir haben noch 4x Siemens HYB 514256A-70 DIP 20 Mit freundlichen Grüßen Hefner-Electronic Gunther Hefner --- Der 30MHz SMD-Quarz ist von Pollin: Bestell-Nr.: 230079 Wie gesagt, 30MHz ist bereits grenzwertig. Ab 32Mhz lief es nicht mehr. Wer das Letzte rausholen will.. ansonsten sollten 25MHz (alte Lan-Karte) sicherer sein.. Peter
Hier gibt es auch noch 4 Drams (Liste beachten! Nur 4x). http://cgi.ebay.de/10-Stuck-D-RAM-IC-gebraucht-Sortiment-AUSWAHL-/250791654062?pt=Bauteile&hash=item3a6458f2ae Peter
1. Gibt es eigentlich schon weitere Aufbauerfolge? 2. Habe noch 2 x 4C256-8 abzugeben, wer hat Interesse? 3. Es gibt neue Platineninteressenten, wer möchte noch und sollte etwas geändert werden? Gruß Joe
@Joe: 1 Änderungswunsch: Die RST Leitung des CP2102 Adapters NICHT mit RESET des AVR verbinden. Sonst wird bei einem Reset des AVR's auch der Adapter resettet und das macht wenig Sinn. Peter
@Joe: Ich habe Interesse an den 2 Chips. Wenn Du auch noch einen SD-Slot übrig hättest, wäre das fein! Gruß Siggi
Mein mega168 ist jetzt auch eingetroffen, da wollte ich mich jetzt an den Aufbau machen. Ich möchte das allerdings nicht als USB-Stick bauen, sondern mit einem MAX232 Pegelwandler und externer 5V-Versorgung an ein Lear Siegler ADM-3A-Terminal hängen. Dazu habe ich mir gerade einen Wolf gesucht, wo ich wie welche Jumper setzen muss - und schließlich wurde mir klar, dass die Eagle Dateien des Postings vom 8.8. nicht mit der ausgelieferten Platine übereinstimmen. Unter anderem fehlt der 3V-Spannungsregler. Kann ich bitte die Eagle-Dateien bekommen, die der Platine entsprechen?
Ich bin verwirrt, die Zip-Datei vom 08.08. enthält den Stand vom 25.07.2011. Das ist der aktuelle Stand mit 3.3V Regler Welche Jumper sind unklar? Gruße Joe
Sorry, mein Fehler. Ich hatte offenbar noch eine veraltete Fassung auf der Festplatte (was mir nicht bewußt war) und habe die beiden vertauscht. Es ist alles in Ordnung. Was mir gestern unklar war, habe ich mit dem Durchgangsprüfer geklärt und die Platine soweit aufgebaut. Ich habe dabei einen anderen 3,3V-Spannungsregler verwendet, den ich noch zur Hand hatte: MCP1702. Die verbauten 100nF-Kerkos sehen nicht ganz so schön aus, weil ich nur welche mit Rastermaß 7,5mm zur Hand hatte. Ich habe einen 25 MHz Grundton-Quarz verwendet mit 18pF-Kondensatoren daran. Gestern habe ich noch die Fuses auf den Quarzbetrieb umgestellt - zu mehr war leider keine Zeit mehr. Bis jetzt sieht alles gut aus :-)
So, die Hardware ist fertig, jetzt werde ich mich der Software widmen. @Peter: Ist Dein Zip-File noch aktuell? Siggi
Jup. ZIP sollte noch aktuell sein. Kann nur sein, das im thrunk von Leo etwas neuere Versionen sind! Am besten schaust du da mal.. letzte Änderung war glaube ich, das CP/M / Bios auch von einer 8MB Diskimage geladen werden konnte.. Peter
Ich habe die AVR-Firmware aus dem trunk assembliert und bekomme jetzt die Ausgabe: CPM on an AVR, v2.1 Testing RAM: fill...wait...reread... Initing mmc... No bootable CP/M disk found! Please change MMC/SD-Card. Initing mmc... No bootable CP/M disk found! Please change MMC/SD-Card. Wenn ich das richtig verstanden habe, kann diese Version von einer FAT-16-formatierten SD-Karte aus einer Image-Datei booten? Ich habe aber nicht verstanden, wie man das bewerkstelligt bzw. fertige Dateien dazu. Gibt es eine Anleitung dazu? Aus dem Abschnitt dazu aus http://avr.cwsurf.de/?AVR_CP%2FM bin ich nicht recht schlau geworden. Oder kann hier jemand eine bootfähige Image-Datei hochladen, die ich dann nur noch in das Hauptverzeichnis legen muss?
Sehr schön! Und mit ADM3 Terminal ist dann auch stilecht ;-) Im avrcpm_aliados.zip sind eigentlich schon disk images anthalten und alle nötigen Batchdateien um sie zu bilden.. Peter
Interessant sind eure Bestückungsvarianten. Merkwürdigerweise schreibt die Literatur immer etwas von Abblock C’s möglichst dicht am IC, ja einen Elko an der SD Card, Pull Up und Pull Downs, … Ich kann ja bei der nächsten Variante all diesen „überflüssigen“ Kram weg lassen :-) Übrigens hier http://www.mikrocontroller.net/articles/AVR_CP/M gibt es auch ein Diskimage. Joe
Danke, die Disk-Images werde ich noch ausprobieren. Erst mal muss ich aber noch die Pegelwandlung von RS-232 auf 3.3V in den Griff bekommen: ich habe nicht bedacht, dass ein MAX232 5V-Pegel ausgibt, die für den bei 3.3V betriebenen AVR zu hoch sind. Was anderes: ich habe gesehen, wird ein BREAK auf der seriellen Schnittstelle derzeit noch nicht behandelt. Das ADM-3A hat eine extra Break-Taste und Terminalprogramme bieten üblicherweise die Funktion, ein Break zu senden. Das würde die Möglichkeit eröffnen, bei Empfang eines Breaks einen Kalt- oder Warmstart auszuführen, oder einen Debugger aufzurufen.
Nils Eilers schrieb: > Pegelwandlung von RS-232 auf 3.3V Ein 74HVCT08 (siehe Schaltung der AVR CP/M Variante 2) sollte das tun. Dort hatte ich die Pegelwandlung für die SD Karte so vorgenommen. Das mit dem Break habe ich nicht verstanden. Wer erzeugt es, wer nutzt es, was macht es? Gruß Joe
Die Pegelwandlung probiere ich mal auf dem Steckbrett. Evtl. reicht schon Spannungsteiler aus zwei Widerständen, ansonsten hätte ich noch 74HC4050 hier. Break wird leider nur im englischen Text der Wikipedia etwas näher erklärt: http://en.wikipedia.org/wiki/Universal_asynchronous_receiver/transmitter#Break_condition Kurz gesagt ist ein Break ein gesendetes Startbit, dem keine Daten folgen (0x00) und das auch für die Zeit halten wird, wo eigentlich das logisch inverse Stop-Bit folgen müsste. Also wie das Senden eines 0x00 mit fehlendem Stop-Bit, was einen framing error ergibt. Erzeugt wird das durch den Sender, in diesem Fall also ein angeschlossenes Terminal(programm). Was es bewirkt, ist nicht allgemeingültig definiert - es hängt ganz vom Anwendungsfall bzw. der tatsächlichen Hardware ab. Allgemein benutzt man es dazu, die Aufmerksamkeit des Empfängers zu erregen. Übliche Anwendungen sind Wechsel der Baudrate oder Reset. Beim AVRCPM wäre es nützlich, um aus jedem Programm aussteigen zu können ohne Reset drücken zu müssen - insbesondere deswegen, weil der Speicher erhalten bleibt. Ich habe zwar schon Z80 und 6502-Assembler programmiert, aber noch nie AVR. Die Implementierung sollte aber nicht sonderlich schwierig sein. Im Grunde nur framing error erkennen (was sowieso der Fall sein sollte), und wenn die empfangen Daten 0x00 sind, dann haben wir ein Break. Und dann z.B. ein Reset oder Warmstart auslösen - fertig.
Der ATmega-U(S)ART kann diesen Zustand erkennen (Framing Error + empfangenes Zeichen = 0). Unser Software-UART (sw-uart.asm) könnte um diese Funktion erweitert werden. Freiwillige vor.
Wenn ich meine Hardware fertig habe, würde ich das gerne probieren. Ich kann aber nur die soft-uart-Version testen, da ich keine 4-bit-Hardware mit hw-uart besitze.
So ich habe nun auch eine Platine fertig bestückt. Auf dem ersten Bild von der bestückten Platine von Joe (Beitrag "Re: CP/M auf ATmega88") ist eine USB-A Buchse zu erkennen. Ich habe nun ohne das groß zu überprüfen auch eine USB-A Buchse eingelötet und erst nachdem ich sofort einen 'Overcurrent' Fehler am USB erhalten habe gemerkt daß das Layout für einen USB-A Stecker ist. Hat mich dann etwas Zeit gekostet die Buchse wieder auszulöten und auf der Unterseite einzulöten, aber jetzt gehts. Foto gibts dann Morgen. Gruß, Günter
Oh, tut mir leid! Ich hätte das bei den Aufbauhinweisen mit erwähnen sollen. Irgendwann früher, weiter oben hatte ich das mal getätigt, jedoch später nicht noch mal explizit erwähnt.
So, hier die versprochenen Fotos. Wie gesagt habe ich eine USB Buchse auf der Rückseite, die Kratzer am USB Anschluß kommen vom Entlöten. Aktuell rennt hier ein ATMega168 bei 20MHz. Gruß, Günter
Ein Dankeschön an alle Beteiligten für das tolle Projekt auch von mir. Ich bin heute dazu gekommen, die Platine zu bestücken. Funktioniert alles bestens! Viele Grüße, Thomas
Wer möchte, der 'Erfinder' des Ganzen = sprite tm hat einen PayPal Spendenbutton auf seiner Seite (Tip Jar): http://spritesmods.com/?art=avrcpm Peter
Unter: http://www.mikrocontroller.net/articles/AVR_CP/M stehen nun die aktuellen Layout Daten, eine Hexdatei zum Soforttest, CP/M Immage zum Testen, sowie der Link zur aktuellen Software (Dank an Leo C.) Offene Baustellen im Projekt: 1. Z80 Emulation 2. Breakfunktion (Wunsch von Nils) 3. SD-Card Funktion verbessern (es gibt einige Karten, die nicht korrekt funktionieren) Überraschenderweise waren die knapp 30 Platinen sofort weg. Es gibt schon wieder Anfragen nach neuen Leiterplatten. Ich würde ab sofort wieder Interessenten sammeln. Natürlich sind jederzeit Wünsche, Änderungen, Erweiterungen willkommen (Peter Resettrennung ist vorgemerkt) Joe
Hallo, Ich würde gerne dem Thema Z80 Emulation ein bisschen Leben einhauchen. Horst hat, wenn ich es richtig mitbekommen habe, das Thema an den Edgar weitergegeben. @Edgar, falls Du hier noch Hilfe benötigst würde ich mich gerne anbieten. Gruß, Günter
So, Hardware ist jetzt erst mal fertig und in ein preiswertes Gehäuse eingebaut (Reichelt SD 10 SW). Die Pegelwandlung am MAX232 von 5V nach 3V funktioniert prima mit einem simplen Spannungsteiler aus einem 1,8K und 3,3K Widerstand. Die Stromversorgung erfolgt über ein 5V-Steckernetzteil und 1N5818 Schottky-Diode als Verpolschutz. Neben der Reset-Taste gibt's noch eine LED für den SD-Kartenzugriff. Den Vorwiderstand habe ich auf 55 Ohm verkleinert, damit sie gut hell leuchtet. Prima wäre noch, die Power-LED und die Zugriffs-LED in einer Dual-LED zu kombinieren, aber da ich nur eine Dual-LED mit gemeinsamer Kathode hatte, hätte das einen Transistor als Inverter erfordert - vielleicht flicke ich den ja mal noch ein ;-) An den I2C-Bus habe ich noch eine batteriegepufferte Echtzeituhr PCF8583 gehangen - mal sehen, ob und wann die Software das unterstützen kann. Das wäre eine weitere Baustelle: den I2C-Bus dem emulierten 8080 als I/O-Ports zur Verfügung stellen: vielleicht so, dass man in eine I/O-Zelle die Adresse des I2C-Busses schreibt und dann über eine andere den tatsächlichen Zugriff vornimmt.
Hallo, bin hier zufällig rein geraten. Falls benötigt, habe in meiner Chip-Kiste 8+1 Dram gefunden. Vielleicht sinds ja die Richtigen: TMS 44C256-80N und 1 M514256B-70R, jeweils 20-polig. Gruß W.Schwede
@Winfried: Die TMS 44C256-80N sollten die richtigen sein. Wenn du sie entbehren kannst -> Mail an peter.sieg1 (at) gmx.de (oder evtl. auch an Joe, dann können sie mit einer nächsten Platinenbestellung verteilt werden) Peter
Thema Echtzeituhr: Von CP/M 2.2 wohl nicht unterstützt, könnte man sich vielleicht trotzdem an die BDOS Funktionen 104 und 105 halten. BDOS Funktion 104 - Datum und Uhrzeit stellen Aufruf mit C=68h, DE=Adresse des Zeitstempels. Der Zeitstempel hat folgendes Format: DW Tag ;Tag 1 ist 1.Januar 1978 DB Stunde ;gepacktes BCD DB Minute ;gepacktes BCD BDOS Funktion 105 - Datum und Uhrzeit holen Aufruf mit C=69h, DE=Adresse des Zeitstempels. Rückgabe A=Sekunden (gepacktes BCD). Der Zeitstempel hat folgendes Format: DW Tag ;Tag 1 ist 1.Januar 1978 DB Stunde ;Gepacktes BCD DB Minute ;Gepacktes BCD
Hallo Leute, wer die Augen aufmacht kann klarer sehen... meine Platine rennt nun auch mit 20 Mhz... Interessant wäre jetzt die Z80 Implementierung und IO Ports über I2C Gruß Hans-Werner
RAM'S dank Winfried S. gibt es nochmal 9 x DRAMS für das Projekt. Wer Interesse hat melde sich bitte bei mir. Stückpreis 0,55€ + Porto (0,70€ Warensendung) Gruß Joe
Es gibt bei genügend Interessenten (noch mindestens 2) nochmals die Möglichkeit Platinen von der letzten Version zu bestellen. Wer hat noch Interesse? Gruß Joe
Hallo Joe, ich könnte auch noch 2 Stck DRAM's gebrauchen, falls noch welche zu haben sind. Vielen Dank Holger
@alle: Ich habe mich nun durchgerungen nochmals Platinen in China zu bestellen. Um den Preis von 10€/Platine halten zu können, mußte ich allerdings einige mehr abnehmen, sodaß wir wahrscheinlich auch noch Weihnachten genug davon haben ;-) Reset zwischen USB TTL Wandler + AVR habe ich entfernt. Als Abwechslung habe ich die Platinen mit weißem Lötstoplack und schwarzer Beschriftung gewählt. Das sollte ganz nett (nerd) mit den schwarzen IC's und dem roten TTL-USB Wandler aussehen ;-) Sollten so in 14 Tagen da sein. SD Slots würde ich dann auch besorgen, sodaß 1 Platine mit Slot dann 12,50€ und Versand dann 2,50€ wären. Wer welche möchte, schicke mir eine Mail mit Anzahl und Lieferadresse und derjenige bekommt dann meine Bankverbindung zur Vorkasse. Peter
@alle: Wie ihr lesen könnt, kümmert sich Peter gerade um die Neubestellung der nächsten Serie. Die Daten von Bobby und Wahe habe ich schon weitergeleitet. Dank Bobby gibt es nochmal 16 DRAM's für das Projekt. Bei Interesse gleich eine Info an Peter, der tütet sie dann mit ein. Joe
Platinen sind heute angekommen.. und erste läuft schon ;-) Bestellte Platinen+Slots gehen morgen zur Post.. Wer übrigens Lust hat.. am 1+2 Okt. findet die Classic Computing in 37603 Holzminden statt (Infos: www.classic-computing.de). Ich werde mit dem Stick auch dort sein.. Peter
Hier scheint es auch noch Rams zu geben: http://www.demotronic.net/ 1,50€/Stück ist ok. --- Ansonsten. Ist ein wenig ruhig geworden..? Was macht die Z80 Implementierfraktion..? Aber auch ohne Programmierkenntnisse, kann man z.B weitere Programme aus CP/M Archiven ausprobieren und in einem neuen Diskimage zusammen stellen.. Peter
Einen Z80 Emulator könnte ich demnächst zur Verfügung stellen. Allerdings braucht der mindestens ca. 17K Flash, so dass nur der Mega328 in Frage käme. Dafür ist er aber recht flott. Für "Leos Schleife" braucht er im FAST Mode (ZX81 Emulator bei 20MHz AVR-Takt und 12 Takten für einen Speicherzugriff) ca. 0,8 Sekunden, was etwa 3,6 MHz Z80 Takt entsprechen würde. Eine auf Speed optimierte Variante (braucht ca. 24K) kommt sogar auf 0,7s was dann etwa 4,1MHz Z80-Takt wären (falls ich mich da jetzt nicht verrechnet habe). Jörg
Joerg, schön wär's mal, wenn ein EMU für AVRs wie den mega162 kommen würde, an den man extern ganz "normale" RAMs über das Memory-Interface dranbekommt. So würde z.B. ein 62256/62512 mit 32k/64k RAM gehen. Auch Banking mit grösseren Chips wäre drin. So dann (glaube ich) in CPM bis 512kb RAM.
@Jörg: Hört sich gut an! Bei den bisherigen Arbeiten zur Z80 Erweiterung hatte ich den Eindruck, das das aber erheblich kleiner geht mit dem Tabellenansatz.. so in Richtung +5-8kb.. arbeitet da z.Z eigentlich noch jemand hier daran..? Ein 328 hatte ich mal versuchsweise geflasht.. der schien aber mit den 3,3V an Spannungsversorgung nicht zurecht zu kommen..? BTW: Es sind noch Platinen+SD Slots zu haben! -> Mail. Peter
Peter Sieg schrieb: > Ein 328 hatte ich mal versuchsweise geflasht.. der schien aber mit den > 3,3V an Spannungsversorgung nicht zurecht zu kommen..? Peter, ich versuche es heute auch mal mit einem 328 und 3.3V. Ich berichte...
Über 5K belegen bei mir schon allein die Sprungtabellen: Ohne Prefix: 512 Bytes CB Prefix : 512 Bytes ED Prefix: 512 Bytes DD Prefix: 1024 Bytes DD CB Prefix: 1024 Bytes FD Prefix: 1024 Bytes FD CB Prefix: 1024 Bytes Was viel gegenüber meiner "alten Version" an Geschwindigkeit gebracht hat, ist zum einen die vollständige Ausdekodierung aller Befehle und die Nutzung des AVR Statusregisters. Außerdem habe ich es aufgegeben das originale Befehlstiming möglichst genau nachzubilden. Bei vielen Befehlen ist das Verhalten von AVR und Z80 gleich, da reicht nach der Operation ein IN reg_f,SREG aus, für logische und Schiebeopertionen nutze ich Tabellen. Manchmal muß man das C Flag über die Operation mittels des T-Flags "retten". Und das N-Flag habe ich nach GPIOR0.0 verlegt. Bei bedingten Sprüngen etc. nutze ich dann die Positionen der AVR Flags. Bei den meisten Programmen sollte das auch keine Probleme bereiten. Am AVR-CP/M Projekt selbst werde ich mich nicht direkt beteiligen, dafür habe ich zu viele andere "Baustellen". Aber das "AX81"-Projekt wird hoffentlich nächste Woche online gehen und damit auch der Sourcecode vom Z80 Emulator. Gruß Jörg
So, habe die Tests durchgeführt. Meine Mega328P laufen alle unter 3.3V bis 20 MHz stabil. Einige auch bis 24 MHz. Joe
Ich habe erst einen mega328p mit 25mhz @ 5V mit Frequenzgenerator ohne Probleme aufm Steckbrett laufen gehabt. Bei 25.2 fing er an zu spinnen...
Hallo! Ich hab hier noch ein Problem. Hab das Projekt entsprechend kompiliert und auf den AVR gebracht, Images kopiert und das Ganze startet erstmal auch, aber dann "A: FAT16 File-Image at:255 size" und Neustart in der Schleife. Wo kann das Problem liegen? Andre
Läuft der RAM Test korrekt durch? Ansonsten sieht mir das ganz nach Kartenunverträglichkeit aus. Einige SD-Karten laufen nicht richtig. Nun gibt es mehrere Möglichkeiten. 1. SPI Takt runter setzen. in der config.inc #define MMC_SPI2X 1 auf (CLK/2) #define MMC_SPI2X 0 setzen (CLK/4) 2. debuggen In der config.inc .equ MMC_DEBUG = 1 Damit wird über die Schnittstelle der MMC Inhalt ausgegeben. Du erkennst also ob die Daten von der Karte richtig gelesen werden. Beim Schalter .equ MMC_DEBUG = 2 oder größer (siehe mmc.asm) wird der SPI Takt auf clk/128 gesetzt. Dann sollte es wirklich gehen. Einige Karten laufen leider nicht. Hier hilft nur Kartentausch oder die MMC Routine noch mal anfassen.
Der Ram test ist einwandfrei. Danke für die Hinweise, das werde ich dann morgen mal ausprobieren. Hab auch noch ein paar andere Karten da :-\
Geht leider immer noch nicht. Mit Debug sehe ich, das die Laufwerke erkannt und gelistet werden, dann "Partinit done.; flags: 30" Dann kommt noch ein Lesevorgang und wieder Neustart Hab jetzt 3 Karten verschiedener Hesteller durch, (16/128/256MB), fertiges Hex-File, selbstcompiliertes HEX, fertige Boot-Images als auch neucompilierte. Keine Besserung. Hardware ist auch ok, Rams habe ich mal mit zwei anderen gewechselt. Hmmm ..
Schalte mal MMC_DEBUG = 4 Dann siehst du was von der Karte nach der korrekten (inkorrekten? ) Initialisierung gelesen wird. Ich habe mal die Ausgabe für die Initialisierung und das lesen des ersten Blocks beigefügt. CPM on an AVR, v2.1 Testing RAM: fill...wait...reread... Initing mmc... mmcInit SPI_CLK_SLOW <FF <FF <FF <FF <FF <FF <FF <FF <FF <FF mmcCMD: 00 00000000 <FF <FF <FF >40 .. 95>95 <FF <01 CMDRes: 01 mmcCMD: 08 000001AA <FF <FF <FF >48 .. 87>87 <FF <05 CMDRes: 05 mmcCMD: 37 00000000 <FF <FF <FF >77 .. 01>01 <FF <01 CMDRes: 01 mmcCMD: 2 9 00000000 <FF <FF <FF >69 .. 01>01 <FF <00 CMDRes: 00 mmcCMD: 37 00000000 <FF <FF <FF >77 .. 01>01 <FF <00 CMDRes: 00 mmcCMD: 2 9 00000000 <FF <FF <FF >69 .. 01>01 <FF <00 CMDRes: 00 mmcCMD: 10 00000200 <FF <FF <FF >50 .. 01>01 <FF <00 CMDRes: 00 <FF CT: 02 InitRes: 00 SPI_DISABLE mmcRdSect SPI_CLK_FAST mmcCMD: 11 00000000 <FF <FF <FF >51 .. 01>01 <FF <00 CMDRes: 00 <FF <FF < FE <00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0 0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0 0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0 0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0 0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0 0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0 0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 02 00 06 08 C8 D0 FD 00 00 00 03 07 1E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0 0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 AA <46 <FF SPI_DISABLE RdSectRes: 00
Also bei mir sieht das so aus: (Steuerzeichen wegdenken, kommt vom Term) ... mmcCMD: 11 0000EE00 <FF <FF <FF >51 .. 01>01 <FF <FF <00 CMDRes: 00 <FF <FF <FF <FF <FF <FF <FF <FF <FF <FF <FF <FF <FF <FF <FF <FF <FF <FF <FF <FE <31 <23 <FF SPI_DISABLE RdSectRes: 00 <\r> <\n>mmcRdSect SPI_CLK_FAST <\r> <\n>mmcCMD: 11 0006FE00 <FF <FF <FF >51 .. 01>01 <FF <FF <00 CMDRes: 00 <FF <FF <FF <FF <FF <FF <FF <FF <FF <FF <FF <FF <FF <FF <FF <FF <FF <FF <FF <FE <31 <23 <FF SPI_DISABLE RdSectRes: 00 <\r> <\n>A:FAT16 File-Image at: 046, size: 208KB.<\r> <\n>B:FAT16 File-Image at: 002, size: 175KB.<\r> <\n>C:FAT16 File-Image at: 099, size: 118KB.<\r> <\n>Partinit done.<\r> <\n>mmcRdSect SPI_CLK_FAST <\r> <\n>mmcCMD: 11 0003AE00 <FF <FF <FF >51 .. 01>01 <FF <FF <00 CMDRes: 00 <FF <FF <?<\r> <\n><\r> <\n>CPM on an AVR, v2.1<\r> <\n>Testing RAM: fill...wait... ... Von 256k war in den letzten Wochen nicht die Rede. Oder hab ich was überlesen? Die hier verwendeten Dateien sind die, die Peter auf seiner Seite veröffentlicht hat. Gruß, Andre
@Andre Die 256K großen Images findest du hier: http://www.mikrocontroller.net/articles/AVR_CP/M Welche Hardware verwendest du? Wird deine MMc richtig initialisiert? Schau mal bitte nach dem ersten Teil deiner Initialisierung. CPM on an AVR, v2.1 Testing RAM: fill...wait...reread... Initing mmc... mmcInit SPI_CLK_SLOW <FF <FF <FF <FF <FF <FF <FF <FF <FF <FF mmcCMD: 00 00000000 <FF <FF <FF >40 .. 95>95 <FF <01 CMDRes: 01 mmcCMD: 08 000001AA <FF <FF <FF >48 .. 87>87 <FF <05 CMDRes: 05 Es sieht so aus, ob etwas von der Karte gelesen wird, aber falsche Daten. Nun kann das Image fehlerhaft sein oder die gelesenen Kartendaten. Wenn du INS_DEBUG = 1 setzt, kannst du die Codes und Befehle mitlesen die ausgeführt werden. PRINT_PC = 1 zeigt dir zusätzlich den Programcounter (hilfreich bei Sprüngen) an. In der derzeitigen 8080int-jmp.asm Lib stehen noch zwei Relativsprünge, entweder durch "Call" ersetzen oder die neue Lib (siehe Anhang) benutzen. Der prinzipielle Bootvorgang sollte so aussehen: ipl.asm wird ausgeführt (läd das CP/M in den Speicher) Die ersten bBefehle sind: org $2000 ld sp,$1000 ld hl,"ipl" call prmsg Das bedeutet, PC steht auf 2000 und führt den ersten Befehl LD SP, $2000 aus. (31 00 20). Dann kommt der Befehl LD HL, "IPL" usw. Der Debugmodus sollte also folgendes anzeigen. Partinit done. Ok, CPU is live! PC=2000 C A =00 BC =0000 DE =0000 HL =0000 SP =E737 PC =2000 31 00 20 PC=2003 C A =00 BC =0000 DE =0000 HL =0000 SP =2000 PC =2003 21 37 20 PC=2006 C A =00 BC =0000 DE =0000 HL =2037 SP =2000 PC =2006 CD 2E 20 PC=202E C A =00 BC =0000 DE =0000 HL =2037 SP =1FFE PC =202E 7E B7 C8 Viel Erfolg! Joe
do9brx schrieb: > Von 256k war in den letzten Wochen nicht die Rede. Oder hab ich was > überlesen? Die Images dürfen nicht kleiner sein als 256k soweit ich das verstanden habe. Daher fülle ich die bei der Erzeugung mit Nullen auf. Inzwischen werden aber dank Leo C. auch weitere Formate unterstützt. (z.B 8MB Images). Nur wenn man eine solches 8MB Image auch als Bootimage verwenden möchte, muss man die aller neueste Firmware flashen! Peter
HW ist die aktuelle Platine von Peter, gelötet nach bestem Wissen und Gewissen und auch wirklich ALLES nochmal nachgeprüft bis auf die Rams, denen ich halt blind vertrauen muss. Na gut, hab jetzt mal darauf geachtet, die 256er Beispiel-Files zu nehmen, nochmal mit den Debug Schaltern compiliert (ich hoffe die Quellen vom 11.4. sind die aktuellen), die Karte wird auch nach obigem Beispiel korrekt initialisiert, am Schluss "mitten im Satz" wieder Neustart: CPM on an AVR, v2.1<\r> <\n>Testing RAM: fill...wait...reread...<\r> <\n>Initing mmc...<\r> <\n><\r> <\n>mmcInit SPI_CLK_SLOW <FF <FF <FF <FF <FF <FF <FF <FF <FF <FF <\r> <\n>mmcCMD: 00 00000000 <FF <FF <FF >40 .. 95>95 <FF <01 CMDRes: 01 <\r> <\n>mmcCMD: 08 000001AA <FF <FF <FF >48 .. 87>87 <FF <05 CMDRes: 05 <\r> <\n>mmcCMD: 37 00000000 <FF <FF <FF >77 .. 01>01 <FF <01 CMDRes: 01 mmcCMD: 29 00000000 <FF <FF <FF >69 .. 01>01 <FF <01 CMDRes: 01 <\r> <\n>mmcCMD: 37 00000000 <FF <FF <FF >77 .. 01>01 <FF <01 CMDRes: 01 mmcCMD: 29 00000000 <FF <FF <FF >69 .. 01>01 <FF <01 CMDRes: 01 ....usw.... A:FAT16 File-Image at: 511, size: 256KB.<\r> <\n>B:FAT16 File-Image at: 255, size: 256KB.<\r> <\n>C:FAT16 File-Image at: 383, size: 256KB.<\r> <\n>Partinit done.<\r> <\n>mmcRdSect SPI_CLK_FAST <\r> <\n>mmcCMD: 11 00148600 <FF <FF <FF >51 .. 01>01 <FF <FF <00 CMDRes: 00 <FF <FF <FF <FF <FF <FF <FF <FF <FF <FF <FF <FF <FF <FF <FF <FF <FF <FF <FF <FE <31 <23 <FF SPI_DISABLE RdSectRes: 00 <\r> <\n>Ok, CPU is live!<\r> <\n><\r> <\n>PC=2000 <\r> <\n> A =00 BC =0000 DE =0000 HL =0000 SP =0000 PC =2000 31 00 20 <\r> <\n>PC=2003 <\r> <\n> A =00 BC =0000 DE =0000 <\0><\r> <\n><\r> <\n>CPM on an AVR, v2.1<\r> <\n>Testing RAM: fill...wait...
Wie ist den die Geschwindigkeit des Emulators ? laueft Turbo Pascal drauf ? Denke drüber nach das ganze auch mal aufzubauen, scheint echt lustig zu sein. Ciao Matze
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.