Danke Jörg, Ja da liegt noch Arbeit vor mir. Ich habe nun noch ein Schmankerl eingefügt. Sobald man ein Programm als Textdatei speichert ändert sich dementsprechend auch das Icon. Dabei habe ich mal wieder festgestellt wie wenig Platz noch im Flash ist :) Musste leider die apis dafür rausschmeißen. Gruß Dominik
Schade... wenn ich den Border im Editor auf blau setze, gehen die einzelnen Programmzeilen trotzdem nach rechts bis zum Bildschirmrand und überlappen die Borderfarbe. Warum ist das so?
Moin, eben den AT45DB081E getestet. Funktioniert nicht. Wird nicht erkannt! Laut Datenblatt sehe ich aber nicht, dass die nicht 5V tolerant sein sollen. Die In/Out's laufen mit LOW Vcc*0.3 bis HIGH Vcc+-0.6 Also das sollte funktionieren! Wobei das E in der bezeichnung auch nur die Revision ist. Hilfe Jörg!!! Nochmal zum Editor: Trotz anderer Hintergrundfarbe der Editorzeilen und Border, ist der rechte Randbereich unangetastet dessen. Immer noch schwarz hinterlegt. wieso? Hilfe Jörg die Zweite!! ext. Eeproms: Ist es viel Aufwand eine Funktion einzubinden, die 1 oder 2 oder mehr Programme wieder in das externe Eeprom schreiben kann? ***** Ich habe jetzt 3 verschiedene Programmicons implementiert. - Leeres Blatt = Kein Programm - beschriebenes Blatt = Textdatei - blauer Computer = BAS Programm Außerdem lässt sich nun auf der Configpage zwischen 2 verschiedenen Farbschmemas umschalten. Dark und Bright. Dark ist das original Design und Bright das vom Screenshot. Genial :) Wenn noch jemand Flash übrig hat, bitte her damit! :)
1. Was ist bei Dir Vcc+0,6V? Die maximale Versorgungsspannung liegt bei 3,6V und damit käme man höchstens auf 4,2V. Oder betreibst Du den DataFlash direkt an 5V? In meiner Schaltung habe ich eine grüne LED dazwischengeschaltet, um ca 3-3,3V am Flash-Baustein zu haben. Bei den "alten" steht im Datenblatt explizit drin, dass die Eingänge 5V tolerant sind, das betrifft aber nicht die Versorgungsspannung. 2. Am Ende der Editorzeilen wird das Videosignal auf 0 gesetzt (vidm_tvm.asm Zeile 311-> out PORT_C,const_0). Das kann man schon ändern, halt ein passendes Register vor der Videosausgabe mit dem Border-Wert laden und dann ausgeben. Die Editorzeilen werden aber nicht genau die gleiche Länge wie der "Rest" haben. 3. Ja, es ist viel Aufwand. Man braucht ein Auswahlmenü für mehrere Programmplätze, eine "Weiche" für DataFlash und EEPROM, ggf. unterschiedliche Bereiche für Programmsopeicher und XPOKE... Da wäre es wahrscheinlich einfacher, auf SD-Karten umzustellen (Pages nur zur Hälfte beschreiben und ggf. das Wear-Levelling für den DataFlash rausschmeißen). Jörg
Hi Jörg, stimmt du hast Recht. Das Datenblatt vom "alten" Flash zeigt nur die Minimalwerte an den Aus und Eingängen. Beim neuen Typ ist bei maximal Vcc+0.6 V als Highpegel Schluss... ach verdammt! :( Also eine SD Karte wäre schon was tolles. Man hätte viel mehr Möglichkeiten der "Datensicherung" da man eher SD Karten bekommt als den Flash. Wieviel Aufwand wäre der Umbau? Unterscheiden sich die beiden Flasharten SD/DF sehr oder könnte man ggf. in der Config aussuchen ob DF oder SD? Das wäre natürlich der Luxus!
Hi Jörg, wenn du mir sagst, wie man die libdfl anpassen muss für SD Karten, dann versuche ich das!! SD Karte wäre soooooooo genial!! Anbei nochmal ein paar Fotos... Na wer kennt noch das Spiel OEL vom C64? Oder Bundesliga Manager? :) Da ich es jetzt geschafft habe Stringarrays vernünftig zu verarbeiten, kann ich solche Spiele nun mühelos portieren. Ok, 95 Zeilen werden nicht reichen aber selbst das Problem bekommt man ja gelöst. Außerdem noch 2 Fotos vom aktuellen Menü mit 3 verschiedenen Icons. Und der Editor im Expertenmodus (lässt sich umschalten) Original und Expert. Da kommt ein wenig C64 Flair auf und man hat eine bessere Übersicht.
Aktueller Stand... alles auf Atmega1284 Basis Rausgeflogen sind: - screenshot Funktion - api Funktionen - Speicherung der Cursorposition im Editor - XModem - Keyboard Testfunktion im Intro Hinzugekommen sind: - 3 versch. Programmicons (.bas Programm, leeres Projekt, Texdateien) - Systempage (Keyboardlayout, Videosignal, freier speicherplatz DF, etc.) - Editormodus wählbar (standart, expert) - Menü im Windows 2 Look Ich will und werde noch ein paar neue sachen hinzufügen die meiner Meinung nach das Gesamtkonzept verbessern. Dafür musste ich eben ein paar Sachen rauswerfen die ICH jedenfalls nicht nutze. Schön wäre jetzt nur noch eine SD karten Unterstützung. Wenn Interesse besteht lade ich natürlich auch die Sourcen mal hoch mit Doku. Vlt wäre ein neuer Thread a la Atmega1284 dafür geeignet wenn Jörg nichts dagegen hat?
Natürlich kannst Du einen neuen Thread aufmachen, der hier ist eh schon recht lang. Denn ich werde an dem Projekt (außer Fehlerbereinigung) sowieso nichts mehr machen. Aber ich hätte noch 8 DataFlash-Bausteine AT45DB081B-RC (OVP im Gurtabschnitt) übrig, bei Interesse bitte PMail an mich. Jörg
Hm... XModem brauche ich um Programme wie CBTerm, keyboardlayout, etc. zu laden oder? Dann muss ich es doch wieder mit reinnehmen.
Und das API brauchst Du auch. Denn die Binärprogramme nutzen auch Systemroutinen. Da sich die Position dieser aber bei Änderungen verschieben kann, gibt es das API. Das liegt an einer festen Stelle und enthält Sprünge zu den eigentlichen Systemroutinen. Dass es ein bisschen "durcheinander" aussieht liegt daran, dass neue Funktionen logischerweise nur ans Ende gestellt werden dürfen. PS: Ich habe gemerkt, dass beim Source-Archiv der aktuellen Version die Sources für die Treiber/Binärprogramme fehlen. Das werde ich in den nächsten Tagen korrigieren. Jörg
Mhh okay, Dann schaue ich mal ob das Api noch passt mach meinen ganzen Änderungen. Ansonsten lasse ich die binär und Bibliothekssachen erstmal raus und überlege mir was anderes.
Hi Jörg, kurze asm Verständnisfrage: Ich habe im "fileman.asm", im Infobereich unter den Blöcken und Files eine weitere Zeile hinzugefügt, die mir anzeigt wieviele Dateien auf dem DF sind. (Wollte erst den freien Platz in Prozent anzeigen lassen aber so fit bin ich noch nicht.) Es funktioniert soweit! Aber wenn ich nun ESC drücke um das Infofeld auszublenden, bleibt es stehen und im oberen Bereich taucht die Statuszeile vom Editor auf in der ich gefragt werde ob ich verlassen will ohne zu speichern. Was ist hier passiert? 1. hängt es mit dem tempreg1 zusammen welches ich nochmals benutze? 2. wird das RETURN beim Tastendruck nicht richtig ausgeführt, weil ich nochmals einen CALL (call fsys_maxpage) Befehl gesetzt habe? 3. was ganz anderes? Ich weiß, um asm zu lernen sollte man klein anfangen! :) Aber ich bin schon stolz, dass ich es geschafft habe mit 2 Werten zu rechnen.
1 | libmio_thistext |
2 | .db 14,3,"Used: ",0 ;show message |
3 | ldi ctrl,0x0c ;set format |
4 | call fsys_free |
5 | push YH ;save free pages |
6 | push YL |
7 | movw XL,ZL ;copy free files |
8 | call fsys_maxpage |
9 | mov XL,tempreg1 |
10 | ldi XH,0x00 |
11 | sub XL,ZL ;maxpage-free |
12 | adiw XL,1 ;+1 |
13 | libmio_outdez ;show files on DF |
14 | libmio_thistext |
15 | .db 255," ",0 |
16 | |
17 | |
18 | fman_info_4: ldi XL,0x06 ;color scheme (inv. black on yellow) |
19 | libmio_setcolor |
20 | libmio_thistext |
21 | .db 16,5," Press any key! "0,0 ;sst cursor |
22 | libmio_waitkey |
23 | ret |
Habs hinbekommen :) Edit: oder auch nicht :(( Entweder stimmt das Ergebnis nicht, weil ich irgendeine Zeile auskommentiert habe aber ich kann wieder zurück springen oder das Ergebnis stimmt aber sobald ich eine taste drücke spinnt der Computer :(
:
Bearbeitet durch User
Noch ne Frage bezüglich Seriellen Loader: Ich habe jetzt die Version 1.50 auf mein 2. Board gespielt. Dort ist der seriel loader ja drauf und es wird nach dem Intro danach gesucht. Schließe ich das Board jetzt an den PC an und starte mein terminalprogramm müsste doch eigentlich "Press Space to start" erscheinen oder? Es kommt aber nichts!! Muss ich im Configmenü irgendwas einstellen? Habe jetzt hier auf der Arbeit keinen Monitor um es zu testen. Dachte eigentlich das alles werksseitig eingestellt ist und ich nur im Terminalprogramm alles richtig setzen muss. Aber keine Chance. Der Loader meldet sich nicht. Hilfe!
Hab auch das hinbekommen. Eine verbindung auf der platine war unsauber. Serielle Verbindung funktioniert jetzt. Aber der serielle loader funzt trotzdem nicht. Im terminal steht zwar press space to start aber egal auf welcher tastatur ich space drücke, er springt nichr in das menü vom loader...
:
Bearbeitet durch User
Mh... basicprogramm vom cb2 an pc senden geht. Vom pc empfangen geht aber nicht. Komisch. Xmodem geht auch nicht... version 1.50
Selbstverständlich. Senden vom avr zum pc geht ja. Also textübertragung.
@patrick Hast du eigentlich ein paar listings von programmen oder spielen? Würde dann auch noch welche die tage veröffentlichen ;)
Ich bekomme es nicht hin Daten zu empfangen! Ein basic Programm zum PC senden geht einwandfrei!! Wenn ich eins empfangen will kommt nichts an. Bei wem klappt das denn?? Und wie muss die Datei auf dem PC liegen, ist das egal? Also welches Format. Hilfe... das kann doch nicht wahr sein! :( @Jörg In Basic gabs ja immer die DIM x(y) Anweisungen. Wie würde das denn bei dir im gegenzug aussehen? Grund ist: Es gibt zig alte Retro Spiele die ich gerne umsetzen möchte. Viele nutzen aber die Arrays eben in diesem typischen Basicformat.
Das mit dem Loader werde ich mir bei Gelegenheit mal anschauen. Das 1.50er Release ist jetzt über zwei Jahre alt und bis jetzt hat sich niemand beschwert. Wahrscheinlich nutzt es einfach (fast) niemand. Mit dem DIM wird es etwas schwieriger, da es nur ein Array mit fester Größe gibt. Deswegen lassen sich verschiedene Arrays nur über Pointer auf verschiedene Bereiche im Array realisieren. Jörg
Super Jörg, mach das bitte mal... ich habe auch immer noch probleme beim Empfangen vom PC. Auf dem RX liegen nur 0,8 Volt an... das wundert mich. Beim senden zeigt mein Terminal programm auch Fehler im Programmcode. Wirre Zeichen. Ziehe ich das serielle kabel ab liegen 5 Volt an und beim senden sind die Zeichen im terminal wieder normal. Wie gesagt: Senden vom AVR zum PC funktioniert einwandfrei!! Nur empfangen nicht. Da weiß ich nicht mehr weiter.
ES FUNKTIONIERT!!!!! Ich habe nun in der Schaltung auf der RS232 Buchse Pin 2 und 3 getauscht! ich glaube da ist im Schaltplan etwas durcheinander geraten! Am PC ist Pin2 Eingang (Rx) und Pin3 Ausgang (Tx) In deinem Schaltplan hast du das aber vertauscht. So wie es bei den Video Anschlüssen auch war (Scart). Der DSub Anschluss im Schaltplan ist demnach der 9 polige MALE Stecker vom PC und nicht eine FEMALE Buchse die man auf die Platine lötet. Dadurch, das der PC nämlich auf dem Pin3 sendet, muss das Signal am AVR auf Pin2 der 9poligen Buchse ankommen. Das da noch kein anderer gemeckert hat wundert mich! Egal, es läuft!! Jetzt müsste der Serielle Loader auch funktionieren! EDIT: SL funktioniert.. aber die Zeichen die ankommen sind nicht lesbar!! komisch!
:
Bearbeitet durch User
Und ich wieder... Die "neuen" Dataflash mit der Bezeichnung AT45DB081E (Revision E) funktionieren einwandfrei!!!! Einzige Änderung: den MOSI vom AVR kommend auf 3,3 Volt herabsenken. Das reicht. ich habe es testweise ebenfalls mit einer grünen LED gemacht und es klappt. Der DF wird erkannt, es lässt sich speichern und laden! **************** Serieller Loader zeigt immer noch wirre Zeichen an. Alle Einstellungen stimmen aber. Bevor ich Pin 2 und 3 der seriellen Schnittstelle getauscht hatte, konnte man noch PRESS SPACE TO START lesen. Jetzt nach der tauschaktion nicht mehr. Jedoch funktioniert nun der serielle Austausch in beide Richtungen. Kurios! *************** Habe nun mehrere Vintage Basic Spiele portieren können und es ist total genial! Vielleicht erstelle ich mal ein Verzeichnis mit Listings falls Interesse besteht. *************** habe mir einen günstigen Video to VGA Konverter gekauft. Einfach weil ich mal testen wollte ob es funktioniert. Immerhin war er günstiger als ein 7 Zoll TFT. Bild erscheint, wenn aber auch nur in schwarz weiß (Ich habe einen FBAS Konverter dazwischen). In manchen Kundenrezessionen konnte man lesen, dass alle mit einem Atari oder Commodore 64 dieses Problem haben. Bild wird in s/w dargestellt. Das liegt dann leider am Chipbasic und nicht am Konverter. Ich denke mal die Syncro macht hier nicht ganz mit. Schade! *************** Anbei auch mal mein aktuelles Board mit FBAS Konverter
BAM.... hab jetzt einen FT232 drauf und kann per Jumper zwischen RS232 und USB wählen. Mit USB funktioniert auch der serielle Lader einwandfrei! HA! :) Cool, die ganzen probleme die ich hier immer schreibe, löse ich ein paar tage später selber! Ist aber auch ruhig geworden hier! Wo sind denn die ganzen Abos??
:
Bearbeitet durch User
Moin zusammen, anbei hänge ich mal ein paar Listings von Programmen und Spielen. In der .zip sind ein paar Chipbasic-Programme als Textdatei sowie eine .pdf die ich angefangen habe. Die soll später als eine Art Katalog dienen für Listings. Einfach mal reinschauen. Muss dazu sagen: Einige Sachen sind natürlich WIP. Und bei anderen müsste man die Eingaben wie IN(1)=1 etc. gegen Tasturabfragen ändern wenn man keinen Joystick am Parallelport hat. Außerdem noch der Schaltplan für den FBAS Konverter. Total simpel und schnell aufgebaut. Joar, ob ich jetzt die Sourcen von dem Chipbasic mal hochladen soll welches ich etwas umgebaut habe weiß ich nicht. Anscheinend interessiert es keinen :) Sind auch eigentlich nur optische Änderungen sowie ein paar Features. Mehr ist leider nicht möglich wegen Platzmangel. *** Der FT232 ist übrigens ein fertig aufgebauter Adapter von Ebay (3,50 €) der sich perfekt in das System integrieren lässt. Wie gesagt, SL läuft jetzt. Außer: Egal ob RS232 der USB, ich kann keine Programme per XMODEM in das System laden. Der PC sendet zwar und der AVR flackert auch aber am Ende ist nichts angekommen außer wirre Zeichen auf dem Programmplatz. Version 1.50!!! Vlt ein Bug? Oder ich bin zu doof. Wäre dann auch ein Bug :) Wäre wirklich cool wenn sich nochmal welche hier melden würden. Damals sind ja recht viele BASIC Projekte entstanden!!
:
Bearbeitet durch User
Also mich interessiert dieses Projekt Auf jeden Fall noch! Ich versuche ja noch die rtc pcf8583 Irgendwie einzubinden das klappt nur noch nicht so ganz :(
was funktioniert denn nicht? ich werde mal die DS1302 testen demnächst! Ja das Projekt muss am Leben erhalten werden. Ich hab schon so viele alte Basic Programme portiert. Ist echt klasse.
Ich habe jetzt das Paket nochmal hochgeladen und hoffe, dass jetzt alles dabei ist. Die neue Versionsnummer kommt daher, dass ich die Releases praktisch komplett automatisch erzeuge und nicht die alte Version überschreiben wollte. Bei mir ist ein DSUB9-Stecker am Basic-Computer und ich nehme ein Nullmodem-Kabel, bei dem ja RX und TX gekreuzt sind. Damit funktioniert bei mir jeglicher Transfer bei 1200 und 2400 ohne Probleme (für die andere Schnittstelle müsste ich erst Hardware zusammenbauen). XMODEM ist NUR für Binärprogramme geeignet, Quelltext muss man via Loader oder Editor im normalen ASCII-Modus übertragen. Binärprogramme sind auch die "compilierten" BASIC-Programme, also so, wie sie im Speicher vorliegen. Für die Weiterentwicklung ist es vielleicht sinnvoller, komplett auf den Mega1284P zu setzen, dann erübrigt sich erst mal das Thema Platz im Flash und im RAM. Jörg
Beitrag #5216922 wurde von einem Moderator gelöscht.
Der thread ist zwar alt, aber vielleicht kommt hier noch jemand vorbei und kann mir eine frage beantworten: Wie schreibe ich mit print zeichen nacheinander in ein Array? Ich habe versucht: For x=0 to 32 esge z:? @0,x;#3;z; next Es wird nur ein Zeichen in das Array geschrieben. Für ein Hilfestellung wäre ich dankbar.
Der Print-Befehl arbeitet die Zeile von links nach rechts ab. Setze erst den Kanal, bevor Du die Position festlegst. In Deinem Beispiel wird die Bildschirmposition auf 0,x gesetzt und dann auf Array-Ausgabe umgeschaltet, wobei die Default-Position erstmal 0 ist. Jörg
Vielen Dank für die schnelle Antwort. Jetzt läufts! Ziel der Übung ist das einlesen und Darstellen der Daten von einem GPS Modul. Johannes
Hallo, ich habe mir einen Chipbasic2 mit AtMega644 gebaut. Leider bekomme ich kein Bild, nur wirre Streifen. Es sieht aus, als wenn er nicht synced. Nun bin ich AVR Noob und mir fehlen vermutlich ein paar Grundlagen. Vielleicht kann mir jemand Starthilfe geben. Ich weiß nicht genau, ob ich richtig vorgehe: - Ich nutze Atmel Studio 7 zur Programmierung mit einem STK500 - Ich nehmen das Hex File aus dem Ordner System (120KB groß). Der Flash beim 644er hat ja nur 64KB. Ist das in Ordnung? - Ich flashe den AVR, klappt auch aber dann kommen eben nur die wirren Bildstreifen. Grundsätzlich scheint das System zu laufen, den er reagiert auf Tastendruck; (die Streifen verändern sich). Ich nutze nur BAS Videosignal. Nun habe ich gelernt, dass auch die Fuses eine Role spielen. Dann hab ich die Fuse Einstellungen für Low, high, und ext, auf die in der Readme angegebenen Werte gestellt. Nun kann ich den AVR aber nicht mehr ansprechen. Es gab auch eine Warnung, die ich einfach übergangen habe (irgendwas mit JTAGen geht nicht mehr, wenn Du das tust). Habe ich den Chip jetzt kaputt geflashed? Kann mich jemand unterstützen? Habe noch weitere AVRs, will die aber nicht auch noch unbrauchbar machen.
Hi vergisst es, Hatte Probleme mit dem Netzteil, deswegen hat der Quarz Probleme beim an schwingen. Außerdem Zahlendreher bei den Fuses. Zum Glück kann mein Prommer AVR Fuses programmieren. Läuft alles. Super Ding!!
Andy schrieb: > Zum Glück kann mein Prommer AVR Fuses programmieren. Wieso ? Das geht doch immer mit allen ISP Programmieradaptern!
Nein ich hab nicht alles gelesen ... trotzdem: Respekt! Schon mal an einen XMega384A3U gedacht? Meine 256er der Serie laufen alle stabil mit 64MHz und Flash gäbe es reichlich.
> Schon mal an einen XMega384A3U gedacht?
Ja, an die Xmega hatte ich schon gedacht, aber letztendlich die Idee
wieder verworfen. Ich hatte auch schon eine Lösung mit Mega1284P und
XC9536 auf einem Daughterboard, welche dann höhere Auflösungen und auch
VGA konnte. Das hätte aber ein komplettes Re-Design der Software
bedeutet. Für mich ist das Projekt abgeschlossen, aber die Sourcen sind
ja verfügbar...
Karl M. schrieb: > Andy schrieb: >> Zum Glück kann mein Prommer AVR Fuses programmieren. > > Wieso ? > > Das geht doch immer mit allen ISP Programmieradaptern! Ja, aber nicht wenn Du auf externen Oszillator stellt und dieser nicht schwingt :) Das hab ich nicht gerafft und hab deswegen die Fuses mit meinen Prommer wieder auf inter gestellt. Ich sag, ja Bin AVR Noob, aber es geht aufwärts:) Mache mir jetzt noch ein Custom Layout und will versuchen irgendwie einen seriell <-> USB Wandlermodul und eine USB Tastatur dranzutackern.
Hallo Jörg, Frohes Neues Jahr! Ich habe die menu.asm ja so angepasst, dass beim speichern eines Basic Programms oder Textdatei unterschiedliche Icons angelegt werden. Was jedoch nicht klappt ist die Definierung des Typs auf dem Dataflash. Da wird jede Datei als BAS abgespeichert. Obwohl für die Textdateien doch andere Bezeichnungen angelegt sind. Wie kann ich das ändern damit abhängig vom Programmnamen auch auf dem Dataflash der richtige Typ steht?
Wenn Du mit SAVE speicherst, werden immer BAS (Typ 0x10) Dateien geschrieben. Außer Byte 12 im Header ist ein "N", dann wird eine native AVR-Datei geschrieben (Typ 0x18). Mehr hatte ich damals nicht vorgesehen, andere Dateitypen lassen sich nur mittels FCREATE erzeugen. Wenn Du beim Speichern mehr Typen unterscheiden willst, musst Du das selbst implementieren. Die Funktionen zum Schreiben (fysys_bsave, fsys_bover) liegen in der modules/filesys.asm Jörg
Danke Jörg! Ah okay... ich dachte es wird noch unterschieden ob beim speichern ein Unterstrich im Programmname ist. Wenn ja wird es als native oder text angegeben. Wie was wo muss ein N im header stehen?
Schau mal Jörg, ich habe das Dataflashmenü etwas angepasst und folgenden Code hinzugefügt:
1 | libmio_thistext |
2 | .db 14,4,"Saved: ",0 ;show message |
3 | ldi ctrl,0x0c ;set format |
4 | call fsys_maxpage |
5 | mov XL,tempreg1 |
6 | ldi XH,0x00 |
7 | adiw XL,1 |
8 | call fsys_free |
9 | push YH ;save free pages |
10 | push YL |
11 | |
12 | sub XL,ZL |
13 | libmio_outdez |
14 | libmio_thistext |
15 | .db 14,14,"File(s)",0 |
Jetzt kann ich mir anzeigen lassen wie viele Dateien ich auf dem Dataflash gespeichert habe. Aber: Wenn ich jetzt eine Taste drücke, startet der Computer neu anstatt zurück zum Menü zu gehen- Warum? Ich habe wie gesagt nur den oben gezeigten Code eingefügt! Gruß Dominik
Das ist nicht verwunderlich. Und zwar deswegen, weil das Y-Register auf den Stack gesichert aber nicht wieder abgeholt wird (pop). Von daher stimmt die Rücksprungadresse nicht mehr und bei einem ret springt der Programm-Counter irgendwohin. Die zwei Zeilen:
1 | push YH ;save free pages |
2 | push YL |
sind wohl vom Kopieren übriggeblieben und müssen raus.
Hallo Jörg, ah okay! Wieder was gelernt! :) Naja ich hab halt alles kopiert ab "call fsys_free" weil ich dachte es gehört mit dazu. Weil beim Aufruf zuvor wird ja ebenfalls YH und YL auf den Stack gelegt und nicht durch pop abgeholt!? Ich teste das heute Abend mal! Immerhin habe ich eine Subtraktion hinbekommen :)
> Weil beim Aufruf zuvor wird ja ebenfalls YH und YL auf den Stack gelegt > und nicht durch pop abgeholt!? Doch, weiter unten (13 Zeilen):
1 | fman_info_2: |
2 | ... |
3 | pop XL |
4 | pop XH |
5 | libmio_outdez |
Jörg
Ach bin ich blöd.... natüüürlich! Jetzt macht das Ganze auch Sinn! Hab das total übersehen. Danke! Muss mal meine C-Brille ausziehen!
Bezüglich speichern auf dem DF mit unterschiedlichen Formaten... Ich habe mir das mal angeschaut aber es funktioniert irgendwie nicht.
1 | ;save file |
2 | ;------------------------------------------------------------------------- |
3 | fsys_savebas: clr tempreg4 ;first file |
4 | |
5 | fsys_save_00: rcall fsys_check ;check for dataflash |
6 | cpi tempreg1,0x00 ;no valid FS |
7 | breq fsys_save_e |
8 | |
9 | rcall fsys_fselbox4 |
10 | ldi XL,0x10 ;BASIC |
11 | sts bas_partab+4,XL ;set file type |
12 | libmio_thistext |
13 | ... |
0x10 ist das BAS Programm. 0x18 steht für AVR native Programme. Änder ich zum testen mal XL,0x10 in XL,0x18 wird dennoch als BAS gespeichert. Zum anderen weiß ich auch gar nicht wie ich unterscheiden soll beim speichern. Es muss ja abhängig sein vom Programmnamen als was gespeichert wird. Naja egal.. das ist dann doch etwas zu hoch für mich
Das Problem mit dem Neustart ist behoben. Es lag tatsächlich an Y Register auf dem Stack :) Was mir aufhegallen ist, auf einem DF habe ich 28 Dateien. Mir wird aber 284 angezeigt. Hab dann mal auf einem leeren DF eine nach der anderen Datei angelegt. Bei 10 Dateien zeigt er mir plötzlich 11 an. Hab ich was verkehrt gemacht in meiner Rechnung?
Dazu müsste ich mich wieder "einlesen", denn das ist schon ein paar Jahre her. Das habe ich aber nicht vor, für mich ist das Projekt abgeschlossen. In der Dateiverwaltung war Vieles vorgesehen, aber nur das Nötigste umgesetzt. Jörg
Hi Jörg, Nicht schlimm... ich finde den Fehler bestimmt noch. Hab mal mit SD Karten experimentert, bekomme es aber leider nicht hin, dass sie wenigstens erkannt werden.
So... Fehler gefunden! Jetzt zeigt er exakt die Anzahl der gespeichteren Dateien auf dem Dataflash an. :) Jetzt mal schauen was ich mit dem restlichen freien Platz im Flash noch anstellen kann.
Hallo Jörg, kurze Frage: ich habe in der Keytavle.inc bei den entsprechenden Kaycodes die Zeichen ä,ö und ü eingetragen. Diese sind auch im Zeichensatz mit drin! Tastatur ist deutsch! Dennoch funktioniert die Eingabe nicht nach dem kompilieren! Einzig das 'ä' löst einen "Pfeil nach oben" Tastendruck aus.
Ich weiß zwar nicht, was Du alles geändert hast, aber das wird generell nicht funktionieren. Die Umlaute im Charset lassen sich nur PRINT %... ausgeben. Alles unter 0x20 und über 0x7F sind BASIC-Token, von daher könnte man die Umlaute gar nicht als Zeichen im BASIC speichern. Jörg
Ah okay... danke Jörg! Dann kann das ja gar nicht funktionieren! Ich dachte nur warum sind die im keytable nicht hinterlegt wenn sie doch auch im Zeichensatz sind. Aber macht natürlich Sinn.
Hier mal mein aktueller Computer als tragbare Version! Hardware: - Alle(!) Schnittstellen nach außen geführt. - FBAS Konverter auf Platine - Video per Schalter zwischen Farbe und Monochrom umschaltbar Software: - Optische Anlehnung an Windows 2 - 3 verschiedene Programm Icons (Leer, Textdatei, BASIC Programm) - Anzeige der Anzahl von gespeicherten Dateien auf Dataflash - Extra Seite mit Infos zum System (CPU, Keyboard, Speicher, etc.) Neue Programme: - Kalender - Mondphasenrechner - Pferderennen - Submarine - Lunar Lander Gibt es hier noch Leute, die sich ebenfalls noch mit dem Computer beschäftigen??
Hi Jörg, Da ich den 1284P nutze würde die Serial Pin Einstellung in der Configpage wegfallen. Hätte dann Platz für eine andere Option. Der Pin wird durch das 5. Bit der libmio_sysconf beeinflusst. Leider finde ich nirgends die Abfrage dazu. Also wo finde ich den Eintrag wo sich die serielle Schnittstelle den Wert holt? Das Einzige was ich gefunden habe ist in der library die Abfrage des 5. Bit bezüglich der 2. Seriellen Schnittstelle. Ich will einfach nur dauerhaft auf PinD1 stellen.
Naja ok... Dann nicht. Vielleicht bekomme ich ja hierbei Hilfe: XModem klappt immer noch nicht! Ich versuche die Measlib.asm zu übertragen aber jedes Mal bei 22,9% ist Schluss und der Transfer wird abgebrochen! Jeglicher Transfer über die Schnittstelle funktioniert, ob senden oder empfangen von Quelltext aus dem Editor. Auch kann ich zum Beispiel den Loader per XModem an den PC senden, auch wenn die Zieldatei nicht wirklich lesbar ist. Aber ein Transfer per XModem zum AVR funktioniert nicht! Ich nutze noch die XModem Sourcen der 1.49 Version!
Korrigiere... geht doch. Nur wie du schon sagtest, ohne Api laufen die Bibliotheken nicht. Hab dann versucht die Api Verweise der Bibliothek häbdisch einzufügen aber die Bibliothek stürzt dennoch ab und zu ab beim Aufruf des Beispiel Messprogramms. Bzw. Das programm friert ein. Schade...
Die Bedeutung der Bits in den Config-Bytes müsste ich auch erst wieder aus dem Code "herauslesen", das meiste steht aber in der configpage.asm. Meine "Papierunterlagen" habe ich irgendwann entsorgt, als ich das Projekt bei mir geschlossen habe. Die originale Measlib sollte aber mit der V1.49 OS Version funktionieren. Als erst mal die Binaries aus den Archiven testen und dann schrittweise austauschen. Warum fügst Du die API-Bibliothek händisch ein? Das geschieht doch normalerweise via Includes. Ich habe mal das Script angehängt, mit dem ich die Bibliotheken gebaut habe. Jörg
Hallo Jörg, schön das du da bist :) Danke für das build bin. Perl? Werde ich mal testen! Ich hatte doch eine zusätzliche Infoseite im Hauptmenü eingebaut. Und 3 unterschiedliche Programmicons eingefügt. Dadurch flog bei mir die API und das XModem aus dem Include. Problem ist halt der .org Platz zwischen Anfang und 0x4000 Xmodem passte zwar wieder rein aber die API's nicht. deshalb habe ich alle Api Sprünge in der Measlib händisch zu den libmio_... Sachen geändert. Brachte aber nichts außer Abstürze. Ich überlege jetzt, wie ich am besten die API's wieder mit an Bord bringe UND meine zusätzlichen Icons und Infoseite beibehalten kann. Kann man an den Org Sachen in der main noch irgendwas tricksen??
PS: Bezüglich den Configbits: Ja, es sind alle Bits soweit beschrieben, bis auf Bit 5 für den seriellen Pin Input! In der libmio/library.asm finde ich alle Config Bits und deren Abfrage. Jedoch nicht das 5. Bit für den Input Pin. Außer für die Konfiguration der 2. Schnittstelle. Da fragt er nur das 5. Bit ab ob gesetzt, wenn ja, dann aktiviere 2. Schnittstelle. Aber von der Systemschnittstelle ist nichts zu finden! PPS: Die Unterlagen entsorgt??? :-O Jörg, das wäre eine schöne Bettlektüre für mich gewesen!! :)
Nochmal eine ganz blöde Frage: im Systemordner liegen: - api.asm - api.inc - api_macros.inc In der MAIN wird aber nur api.asm eingebunden. Ist das richtig? Werden die anderen Dateien irgendwo anders included oder braucht man die gar nicht?
Die beiden .inc Dateien braucht man für das System nicht, wohl aber für die Programmierung von Binärprogrammen, Treibern oder Bibliotheken. Welches der beiden Includes man nimmt, hängt vom eigenen Gusto ab. Die Dateien werden nicht von Hand erstellt, dafür gibt es auch ein Script, welches die Adressen aus dem Listfile ermittelt. Jörg
Super...danke Jörg! Habe jetzt ein paar Videmoded rausgeworfen und schon passeb die Apis wieder rein :) Teste nachher mal die Measlib mit dem LCD Treiber und deinem Beispielprogramm. Wie machst du das mit den .org Sachen in der Main? Weißt du aus dem Koof raus wie viel Platz die einzelnen Sachen brauchen oder siehst du das irgendwie? Wie gesgt, eine zusätzliche Seite im Menp UND Apis war zuviel.
Ohne Videomode 3,4,5 stürzt mein Editor ab. Toll... also alles wieder rückgängig und gucken wo ich Platz herbekomme in den Org Directiven. Was anderes: Ich habe das ominöse 5. Bit der libmio_sysconfig gefunden!!! Zufällig! Es wird in der "vint_o.asm" abgefragt! Dort wird dann entschieden, ob PD1 oder PD3 genutzt wird! Juhuuu
Also die libraries laufen alle wunderbar Jörg. Hab auf die 1.50er gewechselt und dort mein Menü soweit wieder angepasst wie ich es hatte. Musste dafür jetzt leider auf meine Extraseite verzichten weil der Platz so eng ist und ich beim compilieren Fehlermeldungen bezüglich .org bekomme. Bis auf die Screenshotfunktion kann ich so auch nichts mehr rausschmeißen sonst laufen die libs nicht mehr. Schade... ein paar kb mehr Speicher wäre super. Oder nochmal die Frage: kann man bei den Org Anweisungen noch was ändern was den Speicher betrifft?
Zur Measlib: ich habe mir die Bibliothek auf einen Programmplatz gelegt und zusätzlich wie gefordert einen LCD Treiber (1x16). Bei folgender Zeile im Beispielcode von MESS4:
1 | 92 OUT $A00+I,AR(J):NEXT |
bekomme ich einen Syntax Error angezeigt! Habe die Zeile dann auskommentiert und das NEXT verschoben, jetzt läuft das Programm. Widerstände werden exakt gemessen. Bei Kondensatoren gibt es Abweichungen. Warum die Zeile 92 einen Syntax Error ausgibt kann ich nicht nachvollziehen. Hoffe die Zeile ist nur für das LCD relevant?! Ansonsten stelle ich jetzt erst fest wie komplex der Computer doch sein kann wenn man anfängt sich mit den binär Sachen zu beschäftigen! Mir ist aufgefallen, dass die V1.50 größer ist als die 1.45. Warum? Außer Bugfixes wurde doch nichts weiter gemacht oder? Den ATmega1284P hatte ich bereits mit der 1.45 eingebunden. Mir fehlt immer noch etwas Speicher für meine Zusatzseite! Mache mich jetzt auf die Suche ob noch irgendwas weg kann. In der Api zum Beispiel die XMEM Sachen brauche ich ja auch nicht.
Die .org Anweisungen sind dazu da, dass Tabellen immer an 256-Byte
Grenzen im Flash liegen. so lassen sie sich einfacher und schneller
indizieren. Wenn z.B. schon in ZL der Index liegt, braucht man nur ZH
mit dem Tabellenstart zu laden und ein lpm ZL,Z zu machen.
> Außer Bugfixes wurde doch nichts weiter gemacht oder?
Für solche Zwecke wurde vor langer Zeit das Changelog erfunden ;-)
Selbiges befindet sich übrigens am Ende der Haupt-Doku. Außerdem können
auch "einfache" Bugfixes größere Veränderungen am Code nach sich ziehen.
Wenn man das Projekt erweitern will, kommt man um einen Mega1284P und
großflächiges "Entwirren" nicht herum. Aus Platzgründen gibt es
teilweise Sprünge anstatt ret am Ende von Subroutinen. Das Sprungziel
befindet sich dann in einer anderen Subroutine, die dann den "Rest" des
Codes abarbeitet. Damals war das notwendig, damit alles noch in den
Mega644 passt.
Jörg
Moin Jörg, die Changelog kenne ich. :) Leider fehlen die Änderungen von der 1.50 zur 1.51 Version. Aber egal! Ja mit den Sprüngen habe ich gesehen. Ich blicke so langsam mehr und mehr durch den Code. Auch wenn vieles trotzdem noch sehr undurchsichtig scheint. Ist ein Return nicht besser um einen Sprung abzuschließen, anstatt einen neuen Sprung zu machen?? Kannst du was zu dem Syntax Error sagen den ich bekomme bei dem Messprogramm?
> die Changelog kenne ich. :) > Leider fehlen die Änderungen von der 1.50 zur 1.51 Version. Aber egal! Du hattest aber explizit nach den Änderungen zwischen V1.50 und V1.45 gefragt. > Ist ein Return nicht besser um einen Sprung abzuschließen, anstatt einen > neuen Sprung zu machen?? Wenn am Ende z.B. Ergebnisse an eine bestimmte Stelle geschrieben und Register vom Stack geholt werden müssen und das am Ende einer anderen Routine bereits gemacht wird, kann man direkt dorthin springen und damit Code einsparen. Gut, man erkauft sich das mit 2-3 Takten mehr, aber wie Du selbst gerade siehst, ist fehlender Platz oft das größere Problem. > Kannst du was zu dem Syntax Error sagen den ich bekomme bei dem > Messprogramm? Nein. Denn das ist das /funktionierende) Programm, welches ich vom CB2 auf den Computer übertragen habe. Tritt er auch mit originalem OS+Measlib auf? Die Ungenauigkeiten bei der C-Messung muss man halt über die entsprechenden Array-Werte korrigieren. Die Messung nutzt den Komparator und die interne Referenz, die zwischen 1 und 1,2V liegen kann. Der dadurch entstehende Messfehler wird noch größer sein, da die Entladekurve bei ca. U/5 schon relativ flach ist. Jörg
Ja, der Fehler tritt auch bei original OS auf. Deswegen hatte ich mich gewundert! Aber wie gesagt, das Programm läuft wenn ich die Zeile auskommentiere! Meine Extra-Systemseite hab ich nun auch wieder in den Flash bekommen! :-) Ich werde zu Hause mal versuchen eine .hex in eine .bin umzuwandeln. Das ist das nächste wichtigte Ziel!
Hallo Jörg, So.... 1. cbterm.asm genommen, die includes angepasst und mit AVRA kompiliert. Hat geklappt! 2. cbterm.hex mit hex2bin umgeandelt. CBTERM.BIN (55kB) ist entstanden! 3. CBTERM.BIN geöffnet und alle bis zum Programmstart gelöscht, dann aus einer bereits existierenden CBTERM.BIN die Leerzeichen hinte dem Programm kopiert und eingefügt sodass meine .bin exakt 3072 Bytes groß ist. 4. Per XMODEM auf den CB2 übertragen. Hat funktioniert, Icon wurde erstellt. 5. Starten geht nicht, AVR stürzt ab, es gibt Bildstörungen, wie beim Empfang per XMODEM. Was könnte ich falsch gemacht haben? Die .bin sieht mit dem Texteditor exakt genauso aus wie die original .bin. Habe nichts geändert! Größe passt auch. Dennoch startet sie nicht!
> Was könnte ich falsch gemacht haben? Du hast nicht richtig verstanden, wie die Binaries erstellt werden und versuchst, das irgendwie unter Windows hinzubekommen. Spätestens wenn die "rohe" Binärdatei größer als 3K ist, müssten die Alarmglocken klingeln. Wenn ich cbterm.asm übersetze, ist das Hexfile 3450 Bytes groß und das Binary 1216 Bytes. Der Rest wird dann bis 3K mit Nullen aufgefüllt. Wahrscheinlich füllt Dein hex2bin von 0x0000 bis 0x6C00 auf und du musst 55296 Bytes vorne abschneiden. > Die .bin sieht mit dem Texteditor > exakt genauso aus wie die original .bin. Das ist aber jetzt nicht Dein Ernst... Wenn Deine Datei identisch wäre, würde sie ja genauso wie das Original funktionieren. Jörg
Ja was soll ich denn machen? Klar ist das mein Ernst! Ich hab AVRA.exe und HEX2BIN.exe Und bin so vorgegangen wie du es beschrieben hast! Ich weiß ja nicht warum hex2bin bis 0x6C00 auffüllt. Die cbterm.asm bzw. .hex ist die Originale! Wenn ich natürlich Linux brauche, einen Ingenieurstitel und der Jupiter im Orion stehen muss dann kann das natürlich nicht funktionieren. Immerhin bin ich der Erste seit Projektbeginn der sich mit den binaries mal auseinandersetzt.
> CBTERM.BIN (55kB) ist entstanden! Und das ist Dir nicht komisch vorgekommen? > Wenn ich natürlich Linux brauche, einen Ingenieurstitel und der Jupiter > im Orion stehen muss dann kann das natürlich nicht funktionieren. > Immerhin bin ich der Erste seit Projektbeginn der sich mit den binaries > mal auseinandersetzt. Ich denke, ab diesem Punkt können wir uns jede weitere Diskussion sparen. Ich entwickle meine Projekte unter Linux und hin und wieder stelle ich welche davon der Allgemeinheit als OpenSource zur Verfügung. Ob das Einer nutzt, Millionen oder gar keiner, ist mir eigentlich egal. Aus diesem Grund habe ich auch vor längerer Zeit die Zugriffszähler von meiner Homepage entfernt. Das schürt nur unnötige Eitelkeiten. Wer lieber Windows benutzt, mag das gerne tun. Unterstützung dafür wird es aber von mir nicht geben. Zumindest nicht in diesem Leben... Jörg
Na das hat ja auch keiner verlangt. Wer den Thread von Anfang an verfolgt hat, der weiß das auch. Hab ja auch nie gemeckert deswegen. Im Gegenteil. Natürlich kam mir das komisch vor mit der .bin Ich ging aber davon aus, wenn ich in der bin alles bis zum eigentlichen Inhalt lösche und dann dahinter auffülle bis 3072 bytes sollte es reichen. Aber allein dadurch, dass hex2bin die Datei anders erstellt als bei dir ist schon komisch. Ich weiß halt nur nicht warum.
Siehe da... ich habe jetzt 5 verschiedene Versionen von HEX2BIN gefunden. Und bei der 5. hat es dann funktioniert. Die erstellte BIN ist um die 2000 Bytes groß. Den Rest mit Nullen aufgefüllt. Startet trotzdem nicht. Eine fertige BIN aus deinen Sourcen läuft einwandfrei. Kopiere ich den Inhalt der Bin in die von mir erstellte läufts auch nicht. Nullen habe ich aufgefüllt bis 3072 Bytes. Mh... bin wohl doch zu doof dafür :(
HEUREKA! Doch nicht zu doof!! Es funktioniert!!!! Musste mir natürlich alles auf Windows Ebene zurechtklamüsern! Jetzt funktioniert alles und ich kann mir eine Batch schreiben. Für die die es interessiert unter Windows: 1. Test.asm mit AVRA kompilieren 2. Test.hex mit HEX2BIN umwandeln 3. Mittels "fsutil file createnew" unter Eingabeaufforderung eine Dummy Datei erstellen. Größe der Datei = 3072 Bytes - Größe der .bin 4. Mittels "type DummyDatei >> Test.bin" die Dummy Datei anhängen Es läääääuft!!! Danke Jörg!
Hier für alle Windows-Benutzer folgende Dateien, damit man eine .bin Datei erstellen kann: - HEX2BIN.exe (in den Ordner kopieren wo die .asm Datei liegt) - AVREL.exe (auch in den Ordner mit der .asm Datei) - BUILDBIN.bat (Aufruf: Buildbin [Datei]) Aus der .asm Datei wird eine .bin erstellt welche direkt auf den CB2 per XModem übertragen werden kann! Das Script löscht dann alle erstellten Dateien wieder bis auf die .bin Datei.
Passend zum Retro Computer habe ich mit Visual Basic ein kleines Programm geschrieben mit dem man die .bin Dateien etwas komfortabler erstellen kann. Außerdem habe ich ein kleines Terminal eingebaut und einen Editor. Dort kann man BASIC Programme senden und empfangen und diese dann am PC bearbeiten. Mit automatischer farbiger Einfärbung von BASIC-Befehlen, Überwachung der Zeichen pro Zeile und und und... Soll aber kein Emulator werden! Übrigens, hier mal eine kleine Übersicht wo ich einen AVR Chipbasic2 einsetze bzw eingesetzt habe: - Im Cabrio als Dachsteuermodul, etc, - Als Wetterdaten Empfangsstation - Für MSR Aufgaben - Home- und Spielecomputer Gerade im Auto und als MSR Rechner bieten sich die kleinen TFT Bildschirme an, da sie perfekt in Tischgehäuse passen. Erinnert leicht an den Commodore-SX 64 Gruß Dominik PS: Ich hoffe es gibt noch ein paar CB2 Junkies hier??
Hello, Here is the complete schematic I have re-drawn for the AVR chipbasic2 with the atmega644p. I have included everything into a single schematic, no need for adaptors. I have corrected some errors from the schematics of Joerg (I2C bus errors, 16 color extension errors, Serial port errors, SCART port error). R13 is still to be checked against B/W BAS or else it's position must be changed at the bottom of R14. My additions to the schematic: 1. An embedded MCU programmer, so you do not need to buy a programmer. Tested with Ponyprog. 2. Jumper switches select either programmer or flash in the ICSP. 3. Jumper switches select between null-modem or ordinary serial cable in the serial port. So if you do not have a null-modem you can use an ordinary serial cable. 4. Scart port as well as Audio and Video RCA included. 5. HSYNC/VSYNC/CLK signals available in a pin-row. 6. Second serial port available into this pin-row. 7. PSU added, which can be fed from 220VAC, or 8-35VDC, or 8-35VAC. AC is automatically disabled with internal J1 switch. So you can use any PSU available at home, no matter AC or DC. Enjoy! de sv3ora http://qrp.gr PS. Dominik, please email me (find my email at the end of my site) so that maybe we could exchange ideas about the computer. Sorry I do not know German :(
> Habe nun mehrere Vintage Basic Spiele portieren können und es ist total > genial! Vielleicht erstelle ich mal ein Verzeichnis mit Listings falls > Interesse besteht. Hallo, ich interessiere mich für diese Spiele. Können Sie eine ZIP-Datei erstellen und sie hier veröffentlichen, damit ich sie herunterladen kann?
Hallo, zusammen! Gäbe es die Möglichkeit, etwas Hardware an diesen kleinen Computer anzuschließen? Wie das früher möglich war, zum Beispiel über einen 8-Bit-Port, oder eine I2C-Schnittstelle. Und mittels Peek- und Poke-Befehlen zu verwenden oder sogar über echte BASIC-Befehle? Leider kann ich das nicht selber machen; aber es wäre eine feine Sache. Auf jeden Fall ein toller Computer! Horst.
Gibt es doch. Direkt im Basic. > 8-Bit-Port - OUT, DIR ,IN(n), ADC(n) > I2C-Schnittstelle - ICOMM SPI: - SPISEL, SPI(n) Jörg
Horst schrieb: > Hallo, zusammen! > > Gäbe es die Möglichkeit, etwas Hardware an diesen kleinen Computer > anzuschließen? Wie das früher möglich war, zum Beispiel über einen > 8-Bit-Port, oder eine I2C-Schnittstelle. Und mittels Peek- und > Poke-Befehlen zu verwenden oder sogar über echte BASIC-Befehle? > > Leider kann ich das nicht selber machen; aber es wäre eine feine Sache. > > Auf jeden Fall ein toller Computer! > Horst. Bitte sehen Sie sich den Schaltplan an, den ich im vorherigen Beitrag gepostet habe. Sie können alle von Joerg beschriebenen Schnittstellen in einem einzigen Schaltplan sehen. Ich arbeite derzeit auch an einer eingebetteten PS / 2-Tastatur und einer VGA-Schnittstelle, ohne weitere Chips hinzuzufügen.
Ich habe eine Facebook-Gruppe für dieses wundervolle Projekt erstellt. Ich weiß nicht, ob ich es hier posten darf, aber dies ist die URL, wenn jemand interessiert ist. Https://www.facebook.com/groups/529571947566185/ Ich und andere werden dort unsere Arbeit zur Weiterentwicklung des Projekts veröffentlichen. Ich werde versuchen, auch dieses Forum mit den neuesten Nachrichten auf dem neuesten Stand zu halten, aber das Schreiben in deutscher Sprache von Google translate ist unbequem!
Peter S. schrieb: > Oh no! Plese NOT facebook!! > > Peter Ok perfectly understood and respect that. Thank you
The new page I have built for the computer http://qrp.gr/cb2/ There are also hardware extensions and the English translated manual there. Thanks so much Joerg for this nice computer! Enjoy!
Hi, In that page http://qrp.gr/cb2/ I have released a "minimal version" of the hardware for the impatient. This requires the least wiring and the absolutely minimum effort required for a working computer. The extra options (LPT,I2C, ext-flash, ICSP) can be added later on if one wishes so. But they are not required if you want to have a BASIC computer to make programs on. I have built and tested this CB2 hardware "clone" and it works great in every aspect. Enjoy!
Hi, In that page http://qrp.gr/cb2/ I have designed a universal modem for the CB2, under the "modem" link. The modem is a 1200 baud CCITT V23 FSK modem, that communicates directly with the CB2 through the TTL level pins of the ATMEGA644P. The modem can be used for transferring data through CBterm, BASIC editor, or BASIC programs. The data can be transferred through the telephone lines (with the help of a telephone device for dialing and call-answering), and through HAM radio transceivers (automatic PTT enabled). The modem also allows for program storage and loading from audio recorders, so now you can store your programs on simple audio recorders (and cassette recorders if you like the vintage feeling) like it was done on 80s micros. Enjoy! De sv3ora
sv3ora schrieb: > Hi, > In that page http://qrp.gr/cb2/ I have released a "minimal version" of > the hardware for the impatient. This requires the least wiring and the > absolutely minimum effort required for a working computer. The extra > options (LPT,I2C, ext-flash, ICSP) can be added later on if one wishes > so. But they are not required if you want to have a BASIC computer to > make programs on. > I have built and tested this CB2 hardware "clone" and it works great in > every aspect. > Enjoy! Here is the picture of the CB2 clone.
is a simple BBS written to run on the "minimal version" CB2. It requires a serial dial-up modem (external "smart" modem) to be connected on the RS-232 port of the CB2. microBBS handles the modem auto-answer and all the communications after the establishment of the dialup connection. With microBBS callers can write their own public messages and preview the list of public messages. They can also view information about the system. The program stores the messages in the internal EEPROM of the MCU, which is limited, so keep messages short. microBBS is designed to display the information correctly aligned on the CBterm of other CB2 clients. On connection of a client from a PC, you may need to alter the printed messages spaces, to line up the information better on the PC terminal. If you want to run your own BBS, you may need to change the name of the BBS as well as the system information messages, to suit your needs.
sv3ora schrieb: > is a simple BBS written to run on the "minimal version" CB2. It requires > a serial dial-up modem (external "smart" modem) to be connected on the > RS-232 port of the CB2. microBBS handles the modem auto-answer and all > the communications after the establishment of the dialup connection. > With microBBS callers can write their own public messages and preview > the list of public messages. They can also view information about the > system. The program stores the messages in the internal EEPROM of the > MCU, which is limited, so keep messages short. microBBS is designed to > display the information correctly aligned on the CBterm of other CB2 > clients. On connection of a client from a PC, you may need to alter the > printed messages spaces, to line up the information better on the PC > terminal. If you want to run your own BBS, you may need to change the > name of the BBS as well as the system information messages, to suit your > needs. Sorry, I have just been visited your site. Great! Really good work. I like it how you represent the games and the other stuff with pictures and small descriptions. After a long time a turned on my CB2 today and I'm ready to make some more stuff. Did you get the calendar and the moon phase programs?
Hach... immer wieder schön die Kiste mal auszupacken, an den TV zu klemmen und ein bißchen zu programmieren :)
Max B. schrieb: > Sorry, I have just been visited your site. Great! Really good work. > I like it how you represent the games and the other stuff with pictures > and small descriptions. > > After a long time a turned on my CB2 today and I'm ready to make some > more stuff. > Did you get the calendar and the moon phase programs? Not I did not! Can you email them to me please? The email is on my site http://cb2.qrp.gr
Hi, Respekt, nettes Projekt zum rumspielen! Was die relativ kurzen Basic Programme leisten beeindruckt mich. Wo findet man denn die aktuellen Quellen? Ich will mir mal anschauen, wie das ein oder andere umgsetzt/realisiert wurde.
http://www.jcwolfram.de/projekte/avr/chipbasic2/main.php von dort aus -> Download Demnächst wird es wohl auch eine Version mit ein paar Fehlerkorrekturen etc. geben. Jörg
Hallo, ich habe mir den Chip-Basic2 in der Universalvariante (mit 9-poliger Buchse für Audio und Video) nachgebaut und er funktioniert tadellos. Als Monitor nehme ich das (nicht mehr lieferbare) 4,3" Displayset von Pollin. Es hat jeweils einen Cinch-Audio und FBAS-Eingang. Nun mein Problem: Die normale Ausgabe über BAS (Pin 8 der D-Sub-Buchse) liefert ein tadelloses schwarz/weißes Bild. Da ich zufällig einen CXA1645P in meinem Bestand habe, dachte ich mir, es mit FBAS zu versuchen. Von den Daten her müsste dieser doch ähnlich wie der in diesem Thread von manchen verwendete MC1377P sein - und das schöne daran, er läuft sogar mit 5 V. Anhand der Sony-Applikationsschaltung (siehe Anhang) habe ich mir also den Encoder auf Lochraster nachgebaut, doch leider liefert er überhaupt kein Bild (nicht mal ein Flackern ist zu erkennen). Im Gegensatz zum MC1377P kann nicht direkt ein Quarz angeschlossen, sondern es muss an Pin6 ein Sinussignal mit der PAL-Frequenz angelegt werden. Provisorisch habe ich 4,43619 MHz von meinem Netzwerktester (NWT1) an diesen Pin eingespeist (2,3 Vss) - später soll ein Quarzgenerator folgen. Nach mehrmaligem Durchmessen der Schaltung konnte ich keinen Fehler finden und auch die Stromaufnahme ist im Sollbereich (ca. 40 mA). Daraufhin habe ich wie in der MC1377-Applikation die RGB-Eingänge mit 75 Ohm nach GND abgeschlossen und HSYNC über eine Diode und Csync über 10k jeweils zusammengeführt und über 68 Ohm an GND gelegt. Einzig und allein die RGB-Eingangs-Koppelkondensatoren habe ich auf 100nF belassen und bin von dort direkt an die Pins 1, 2, und 3 der DSUB-Buchse gegangen. Leider findet man kaum Hinweise zu diesem Chip; vielleicht haj jemand eine Idee was ich noch überprüfen könnte? Gruß Franz
Beitrag #6266993 wurde von einem Moderator gelöscht.
Hallo, ich habe dieses Projekt aus einem Atmega644P erstellt (mein Atmega1284P funktioniert nicht, die Verbindung ist die gleiche wie beim 644?) Ansonsten funktioniert alles einwandfrei. Ich wollte die serielle Programmübertragung versuchen, da ich kein RS232-Kabel zur Hand habe. Ich habe ein Arduino Uno verwendet, um die Verbindung herzustellen (mit gekreuztem TX und RX), und am Ende bekam ich Auf HyperTerminal die Meldung "Press Space to Start", habe ich es geschafft, BASIC-Programme von Atmega zu senden, aber Binärprogramme wie Textprogramme werden nicht vom Computer gesendet. Hat jemand eine Idee? Mit der ExtraPutty-Software konnte ich etwas über Xmodem senden, aber das Senden scheint nicht zu enden und ich habe seltsame Zeichen im Programmsymbol. Außerdem wird das Programm "Serial Loader" nicht geöffnet, es soll geöffnet werden ? EEPROM funktionieren auch nicht oder ich weiß nicht, wie ich sie verwenden soll ...
Habe das Problem gelöst. Pin 10 (Sync) vom CXA1645 muss direkt mit HSYNC (Pin 5 auf Sub-D) verbunden werden. Vsync ist ohne Bedeutung. Außerdem war mein Testkabel zu lang - das BAS-Signal kam noch einigermaßen durch (Pin 8 auf Sub-D), aber die R,G,B-Daten und vor allem die HSYNC waren total verrauscht (habe es auf dem Oszi beobachtet). Habe parallel noch eine Version mit AD724 aufgebaut. Hier muss der VSYNC vom AD724 auf +5V gelegt werden, der HSYNC geht wieder direkt auf Pin5. Beide Versionen laufen mit 5V. Subjektiv kommt mir das Bild mit dem AD724 schärfer vor, es kann aber auch an meinen provisorischen Leitungen liegen.
Frohes Neues Jahr zusammen, 2 Jahre später und immer noch aktuell. Zur Zeit nutze ich die Atmega8 Version für kleinere Schaltaufgaben zu Hause. Die 1284p Version habe ich mir jetzt nochmal aufgebaut aber diesmal mit Universal Video Buchse damit ich flexibler bin. @Franz Das ist interessant. Ich nutze immer noch erfolgreich den MC1377. Aber gut zu wissen, dass es noch Alternativen gibt. @Jörg Gibt es noch Ideen, Features, etc. für die Zukunft?
> Gibt es noch Ideen, Features, etc. für die Zukunft?
Nein, da kommt nichts mehr. Zumindest nicht von mir, aber der Quellcode
ist ja Open Source. Ich habe einfach keine Verwendung mehr dafür. Wer
setzt sich mit einer Tastatur vor einen 40" Flatscreen? Für VGA, was ja
heute auch mehr und mehr obsolet wird hätte man zusätzliche Hardware
benötigt. Vor fast genau 14 Jahren war das vielleicht eine tolle Sache,
aber die Welt ist in der Zwischenzeit nicht stehen geblieben...
Jörg
Ach Jörg... Die Welt vielleicht nicht aber wir Retro Junkies :) Ich bin froh noch einen kleinen Flat-TV mit Scart im Keller stehen zu haben für solche Geschichten. Selbst alte Konsolen sind über RGB einfach ein Muss. Und ja, wenn ich den Chipbasic auspacke dann sitze ich da mit der alten, klobigen, vergilbten Tastatur. Der Chipbasic ist eine tolle Sache und wird immer noch genutzt. Es gibt hier einen User aus Griechenland der dem CB eine Webseite gewidmet hat. Samt Bibliothek sämtlicher Programme und Spiele dafür. Also es wird immer noch fleißig damit programmiert. Ich würde das Projekt nicht so unterbewerten. Was du dir da aus dem Kopf gedrückt hast ist schon einzigartig. Ja, es ist Open Source. Aber du hast wirklich jede noch so kleine Kleinigkeit erfolgreich implementiert. Bis auf ein paar Verschönerungen am Layout und ein paar Änderungen am Menü habe ich auch nicht wirklich was gemacht.
Moin zusammen, für alle Interessierten kann ich nur nochmal Werbung für die Seite von Kostas machen: http://cb2.qrp.gr Er und ein paar Andere haben dort alle möglichen Programme und Spiele (Ja, es gibt neue Spiele) mit Screenshot und Quellcode angelegt. Es gibt also tatsächlich noch welche, die den Computer nutzen und dafür programmieren. Spiele wie Tic Tac Toe, Mastermind, Reversi, etc. sind wirklich klasse gelungen für das System. Demnächst erscheint dort auch der Urvater der Wirtschaftssimulationen. Ich habe erfolgreich das Spiel HAMURABI umgesetzt. Zur Zeit bin ich dabei KAISER vom C64 auf den CB2 zu portieren. Leider mit ein paar Einschränkungen. Übrigens, ich nutze sogar noch den Atmega8 Chipbasic, eingebaut in ein kleines Gehäuse mit Mini-TFT schaltet und regelt er ein paar Sachen bei mir zu Hause :)
Beitrag #7001578 wurde von einem Moderator gelöscht.
Eben gefunden: https://www.youtube.com/watch?v=or0Cev_Ziag Hier hat jemand die 32er Basis vom Chipbasic genommen und in einen ATMega328 gepackt. Zwar alles auf russisch aber was mir besonders gut gefällt sind die verschiedenen Chartables die er zur Laufzeit nutzt. Besonders im Editor. Dort sind jetzt farbliche Syntax Hervorhebungen :) Sehr cool!
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.