Hallo Leute, der Titel sagt leider nicht viel, 'tschuldige. In GREAT COW BASIC, (für PICs) gibt es Befehle wie "WAIT xx h" wodurch xx Stunden gewartet wird. Ähnlich mit s für Sekunden... usw. Aber, wie ich es vor langer Zeit erlebt habe, daß in Assembler eine ziemliche Software gebraucht wird um eine kleine Wartezeit zu produzieren. Na, dann wird es etwas, wenn's um 'ne Stunde geht. Und dann frage ich mich, wo bleibt so ein Befehl in die paar Bytes die man in ein PIC hat ? Es funktioniert, aber wie ? Liebe Grüßen, Evert
Evert D. schrieb: > Aber, wie ich es vor langer Zeit erlebt habe, > daß in Assembler eine ziemliche Software gebraucht > wird um eine kleine Wartezeit zu produzieren. Kann man so nicht sagen, aber im Schnitt braucht er ca. 42. platzda
Noch ein kleine Verdeutlichung: Diesem Basicbefehl wird natürlich kompiliert nach Assembler, und dann braucht es den nötigen Platz.
Christian M. schrieb: > Compiler doch mal und schau das asm File an... > > Gruss Chregu Naja, inzwischen verstehe ich nichts mehr von Assembler...
Ich auch nicht mehr, lohnt sich aber trotzdem dort reinzuschauen! Mach ich immer mal wieder. Gruss Chregu
Evert D. schrieb: > Aber, wie ich es vor langer Zeit erlebt habe, > daß in Assembler eine ziemliche Software gebraucht > wird um eine kleine Wartezeit zu produzieren. Und wo soll das genau gewesen sein? > Und dann frage ich mich, wo bleibt so ein Befehl > in die paar Bytes die man in ein PIC hat ? > Es funktioniert, aber wie ? Einfach. Es wird 60 Mal 1 Minute Delay aufgerufen, das ergibt eine Stunde Wartezeit. Dieses wird dann xx Mal aufgerufen. xx Stunden Delay sollte in etwa 10-15 Assembler Befehle passen.
Marc V. schrieb: > Evert D. schrieb: >> Aber, wie ich es vor langer Zeit erlebt habe, >> daß in Assembler eine ziemliche Software gebraucht >> wird um eine kleine Wartezeit zu produzieren. > > Und wo soll das genau gewesen sein? > >> Und dann frage ich mich, wo bleibt so ein Befehl >> in die paar Bytes die man in ein PIC hat ? >> Es funktioniert, aber wie ? > > Einfach. > Es wird 60 Mal 1 Minute Delay aufgerufen, das ergibt eine Stunde > Wartezeit. Dieses wird dann xx Mal aufgerufen. > > xx Stunden Delay sollte in etwa 10-15 Assembler Befehle passen. Ohjee... haha 15 Assemblerbefehle ?.... ja klar, dann paßt es! DANKE ! Ich fand Assebler immer sehr umständlich. LG, Evert
Evert D. schrieb: > Naja, inzwischen verstehe ich nichts mehr von Assembler... Dann lerne es wieder. Brauchst du nicht mehr so dämliche Fragen zu stellen...
Evert D. schrieb: > Diesem Basicbefehl wird natürlich kompiliert Das ist überhaupt nicht natürlich. BASIC Programme wurden immer schon tokenisiert abgelegt (jeder BASIC Befehl braucht dann nur 1 Byte). Und dann wurde das von einem Interpreter abgearbeitet. So einen BASIC Interpreter kriegt man in ca. 2KB Machinencode implementiert. Dein "Programm" oben braucht dann 1 Byte für WAIT, N Bytes für die Zahl und 1 Byte für das "h". Dann noch ein Byte für das Zeilenende und ca. 4 Bytes für Zeilennummer und Linkpointer. Und natürlich einmalig 2KB für den Interpreter. Evert D. schrieb: > wie ich es vor langer Zeit erlebt habe, > daß in Assembler eine ziemliche Software gebraucht > wird um eine kleine Wartezeit zu produzieren. Bahnhof. Zwar kann man für eine (sehr) kurze Wartezeit einen NOP Befehl verwenden. Aber wenn man längere Zeiten braucht, dann schreibt man nicht einfach nur sehr viele solche NOPs hintereinander. Schon gar nicht, wenn man mehrere Stunden warten will. Hast du schon mal von Schleifen gehört? Und davon, daß man solche Schleifen auch verschachteln kann?
Axel S. schrieb: > Das ist überhaupt nicht natürlich. BASIC Programme wurden immer schon > tokenisiert abgelegt (jeder BASIC Befehl braucht dann nur 1 Byte). Und > dann wurde das von einem Interpreter abgearbeitet. ... irgendwo habe ich gelesen, dass es sogar schon Basic-Compiler geben soll :-)
> Bahnhof.
Schleifenzeiten ändern sich mit der CPU-Taktfrequenz.
"Gerüchten zu Folge" gab es schon seit Z80-Zeiten
einen CTC-Schaltkreis für diesen Zweck.
Axel S. schrieb: > Das ist überhaupt nicht natürlich. BASIC Programme wurden immer schon > tokenisiert abgelegt (jeder BASIC Befehl braucht dann nur 1 Byte). Schon der gute alte C128 hatte 2Byte-Token...
John Doe schrieb: > Schon der gute alte C128 hatte 2Byte-Token... Wenn du weniger als 128 Token brauchst, wäre das Overkill
Ralph S. schrieb: > ... irgendwo habe ich gelesen, dass es sogar > schon Basic-Compiler geben soll :-) Es gibt sogar Basic-Compiler, die einfach das tokenisierte Programm mit der Runtime zusammenkleben und dann fertig sind. :-)
Ralph S. schrieb: > Axel S. schrieb: >> Das ist überhaupt nicht natürlich. BASIC Programme wurden immer schon >> tokenisiert abgelegt (jeder BASIC Befehl braucht dann nur 1 Byte). Und >> dann wurde das von einem Interpreter abgearbeitet. > > ... irgendwo habe ich gelesen, dass es sogar schon Basic-Compiler geben > soll :-) Ich habe nichts Gegenteiliges behauptet. Aber gerade im Kontext von BASIC sind Compiler eine recht späte Entwicklung. Und auf 8-Bittern waren sie verhältnismäßig wenig verbreitet. Was damit zusammenhängen könnte, daß sie damals nicht sehr gut waren. Ich weiß noch, daß ich mal mit einem BASIC Compiler für den C64 herumgespielt habe. Die Binaries waren riesig groß und auch nicht sonderlich schnell. Auf Amiga und PC sah das anders aus. Und BASCOM ist nur von der Form her noch mit den BASIC Dialekten der Urzeit vergleichbar. Zumal das ja auch strikt ein Cross-Compiler ist. Das hat auf dem Host Unmengen an CPU-Zeit und Speicher verfügbar, um das Programm zu optimieren. Wenn der Compiler auf den Zielsystem laufen müßte, könnte er das gar nicht. Ich war jetzt zu faul, nachzusehen was für ein PIC BASIC der TE da hat. Kann gut sein, daß das ähnlich wie BASCOM eine jüngere Entwicklung ist.
oszi40 schrieb: > Schleifenzeiten ändern sich mit der CPU-Taktfrequenz. > "Gerüchten zu Folge" gab es schon seit Z80-Zeiten > einen CTC-Schaltkreis für diesen Zweck. Der CTC-Schaltkreis hat niemals die CPU-Taktfrequenz des Z80-Prozessors geändert!
Einige von euch können nicht lesen. Es geht nicht um Heimcomputern, sondern PIC-controllern. Und dann gibts noch freche Typen auch....
Um dem TE mal eine Antwort auf seine eigentliche Frage zu geben: Hab's mal kurz getestet: 1 Stunde Wartezeit, PIC12F683 @4MHz, Compiler: MikroBasic 7.6: delay_ms(3600000) -> 17 Maschinenbefehle: ;test.mbas,23 :: delay_ms(3600000) MOVLW 72 MOVWF R10+0 MOVLW 87 MOVWF R11+0 MOVLW 206 MOVWF R12+0 MOVLW 10 MOVWF R13+0 L__main1: DECFSZ R13+0, 1 GOTO L__main1 DECFSZ R12+0, 1 GOTO L__main1 DECFSZ R11+0, 1 GOTO L__main1 DECFSZ R10+0, 1 GOTO L__main1 NOP Guß Johannes
Hallo Johannes, vielen Dank für die Info. Schön gemacht ! Schönes Wochende schonmal ! Evert
Axel S. schrieb: > > Aber gerade im Kontext von BASIC sind Compiler eine recht späte > Entwicklung. Und auf 8-Bittern waren sie verhältnismäßig wenig > verbreitet. Was damit zusammenhängen könnte, daß sie damals nicht sehr > gut waren. Ich weiß noch, daß ich mal mit einem BASIC Compiler für den > C64 herumgespielt habe. Die Binaries waren riesig groß und auch nicht > sonderlich schnell. > Da gab es schon vorher Besseres. > Auf Amiga und PC sah das anders aus. Und BASCOM ist nur von der Form her > noch mit den BASIC Dialekten der Urzeit vergleichbar. Was das BASIC von 1964 angeht, hast Du recht. Ansonsten war BASCOM halt der Hausstandard von Microsoft, der spätestens seit Anfang derx80er Jahre kanonisch war. > Zumal das ja auch > strikt ein Cross-Compiler ist. Nö. Der lief auf einen 8080 unter CP/M und produzierte ausführbar Objektdateien für 8080 unter CP/M. Das hat auf dem Host Unmengen an CPU-Zeit > und Speicher verfügbar, um das Programm zu optimieren. Nun, auf dem ZX80 lief das nicht einmal mit der 4k-Speicherweiterung. Das könnte aber such an CP/M gelegen haben... Wenn der Compiler > auf den Zielsystem laufen müßte, könnte er das gar nicht. > Und da heißt es immer, Prognosen seien dann besonders unzuverlässig, wenn sie sich auf die Zukunft bezögen! > Ich war jetzt zu faul, nachzusehen was für ein PIC BASIC der TE da hat. > Kann gut sein, daß das ähnlich wie BASCOM eine jüngere Entwicklung ist. Was ist denn bitte an BASIC-80 so furchtbar jung?
Percy N. schrieb: > > Was das BASIC von 1964 angeht, hast Du recht. Ansonsten war BASCOM halt > der Hausstandard von Microsoft, der spätestens seit Anfang derx80er > Jahre kanonisch war. Ich rede von https://de.wikipedia.org/wiki/BASCOM [1], nicht von irgendwelchem Microsoft-Krempel aus den 80ern. [1] falls Wikipedia dich wider Erwarten auf das falsche führt; ich meine dieses hier: https://www.mcselec.com/
Axel S. schrieb: > Percy N. schrieb: >> >> Was das BASIC von 1964 angeht, hast Du recht. Ansonsten war BASCOM halt >> der Hausstandard von Microsoft, der spätestens seit Anfang derx80er >> Jahre kanonisch war. > > Ich rede von https://de.wikipedia.org/wiki/BASCOM [1], nicht von > irgendwelchem Microsoft-Krempel aus den 80ern. > > [1] falls Wikipedia dich wider Erwarten auf das falsche führt; ich meine > dieses hier: https://www.mcselec.com/ Es bedarf wohl schon einer besonderen Form von Ignoranz, um das MS-BASCOM von 1981 als irgendwelchen Krempel zu bezeichnen, insbesondere dann, wenn zugleich diese ulkige Maker-IDE als Maßstab herangezogen wird. Halte es doch einfach mit Wittgenstein und schweige von Dingen, die Du nicht verstehst. Das wäre vorliegend allerdings nicht nur BASIC-80, sondern BASCOM insgesamt anzuraten.
Axel S. schrieb: > Ich rede von https://de.wikipedia.org/wiki/BASCOM [1], nicht von > irgendwelchem Microsoft-Krempel aus den 80ern. Dieser Compiler ist aber ziemlich Scheiße. Wenn ich zu C-Compilern schon immer sage, dass das nur maßlos aufgedonnerte Makro-Assembler sind, dann gilt das aber in sehr viel höherem Masse auch für BASCOM. Da ist mehr Redundanz im Compilat als z.B. einem GCC, der auf Codegröße optimiert. Und sogar sehr viel mehr als bei einem GCC der auf Vmax optimiert. Wer wirklich Assembler kann, sieht die BASCOM-Pattern im Code mit links und 40° Fieber. Bei auf Geschwindigkeit optimierten GCC-Compilaten ist das schon längst nicht mehr so einfach zu erkennen. Sprich: der BASCOM-Compiler ist wohl sicher besser als ein Interpreter, aber nicht annähernd so gut, wie ein Compiler sein könnte...
c-hater schrieb: > Axel S. schrieb: > >> Ich rede von https://de.wikipedia.org/wiki/BASCOM [1], nicht von >> irgendwelchem Microsoft-Krempel aus den 80ern. > > Dieser Compiler ist aber ziemlich Scheiße. Kann sein, kann nicht sein. Ist auch eigentlich egal. Es wird ja niemand gezwungen, das zu benutzen. Ein paar Leuten scheint es zu gefallen. Aber über Geschmack kann man nicht streiten... > Wenn ich zu C-Compilern schon > immer sage, dass das nur maßlos aufgedonnerte Makro-Assembler sind, dann > gilt das aber in sehr viel höherem Masse auch für BASCOM. Just for the record: es war der TE, der hier mit BASIC angefangen hat. Für mich hat sich das Thema seit ca. Ende der 80er erledigt. Und was sein "Große Kuh BASIC" angeht: das fährt tatsächlich auf der gleichen Schiene wie BASCOM. Es ist ein Cross-Compiler, der einen proprietären (aber immerhin auf µC-Anwendungen bezogenen) BASIC-Dialekt in PIC und AVR (ja!) Binaries übersetzt: http://gcbasic.sourceforge.net/Typesetter/index.php/Home Ob es was taugt? Keine Ahnung. Interessiert mich nicht die Bohne. Wenn ich mal auf dem Retro-Trip sein sollte, würde ich mir eher Forth ansehen, als den N-ten BASIC Dialekt.
Percy N. schrieb: > Es bedarf wohl schon einer besonderen Form von Ignoranz, um das > MS-BASCOM von 1981 als irgendwelchen Krempel zu bezeichnen, Hier im Forum taucht das verlinkte BASCOM regelmäßig auf, im Gegensatz zu einem fast 40-jährigen Microsoft-Produkt. Daher darf man davon ausgehen, dass die Stimme des Viechs das auch versteht.
Percy N. schrieb: > Axel S. schrieb: >> Ich rede von https://de.wikipedia.org/wiki/BASCOM [1], nicht von >> irgendwelchem Microsoft-Krempel aus den 80ern. > Es bedarf wohl schon einer besonderen Form von Ignoranz, um das > MS-BASCOM von 1981 als irgendwelchen Krempel zu bezeichnen Du meinst, MS-BASIC war eins der besseren Produkte dieser Firma? Hmm, da könntest du sogar Recht haben. Ich persönlich empfand BASIC auf dem PC immer schon als Anachronismus. Mir ist klar, daß William Henry Gates III als Student seine ersten Fußabdrücke in der Software-Geschichte in Form des Apple-BASIC hinterlassen hat. Dennoch würde ich annehmen, daß er das mit dem Beginn der PC-Ära als Jugendsünde verbucht hat ("ich war jung und brauchte das Geld"). Auf dem PC gab es richtige Programmiersprachen wie PASCAL, C oder FORTRAN. Was wollte man da mit dem archaischen BASIC? > insbesondere dann, wenn zugleich diese ulkige Maker-IDE als > Maßstab herangezogen wird. Es würde mir nicht im Traum einfallen, die beiden zu vergleichen. > Halte es doch einfach mit Wittgenstein und schweige ... LOL. Das Kompliment gebe ich dir gern zurück. Wenn du in Nostalgie schwelgen willst, setz dich mit einem Glas Rotwein vor den Kamin.
Axel S. schrieb: > Was wollte man da mit dem archaischen BASIC? Microsoft ist ein gutes Stück älter als der PC, und großes Produkt vor MS-DOS war eben BASIC - für diverse 8 Bit-Maschinen. Und wer BASIC auf den Kisten gelernt hatte, konnte damit auf dem PC direkt weiterarbeiten... Und zumindest die ersten PCs waren jetzt nicht wirklich viel besser als die Heimcomputer vor ihnen.
S. R. schrieb: > Percy N. schrieb: >> Es bedarf wohl schon einer besonderen Form von Ignoranz, um das >> MS-BASCOM von 1981 als irgendwelchen Krempel zu bezeichnen, > > Hier im Forum taucht das verlinkte BASCOM regelmäßig auf, im Gegensatz > zu einem fast 40-jährigen Microsoft-Produkt. Daher darf man davon > ausgehen, dass die Stimme des Viechs das auch versteht. Reduziert auf diesen einzigen Aspekt mag das zutreffen, nur wurde zuvor behauptet, Compiler für BASIC seien allgemein eine recht späte Erscheinung; speziell 8-bitter wurden in Bezug genommen und dann auch noch ein C-64 als Messlatte genommen. Dazu dann noch die Behauptung, BASIC-Compiler seien Cross-Compiler ... Nun, je nachdem, wie weit man sich unter den Tellerrand duckt, mag das ja alles zutreffen. Dass die 8-bit BASIC-Compiler von MS nichts getaugt haben, war dann wohl der Grund für den durchschlagenden Markterfolg - zur Zeit des erwähnten C 64 immerhin schon Versionen 6.0 bis 7.1 PDS für DOS. Gut, das war dann schon 16 bit, aber merkbar das gleiche Produkt. Halt der Krempel, der MS massenhaft Geld für eigene Entwicklungen eingebracht hat. Ob es überhaupt sinnvoll ist, BASIC zu kompilieren, ist eine andere Frage. Insoweit war damals wohl wieder mal das goldene Näschen des Herrn Gates beteiligt. Es hat sich für ihn gelohnt.
Ralph S. schrieb: > Axel S. schrieb: >> Das ist überhaupt nicht natürlich. BASIC Programme wurden immer schon >> tokenisiert abgelegt (jeder BASIC Befehl braucht dann nur 1 Byte). Und >> dann wurde das von einem Interpreter abgearbeitet. > > ... irgendwo habe ich gelesen, dass es sogar schon Basic-Compiler geben > soll :-) Bestimmt ein Flashback von "damals" zu Zeiten von Basic-Briefmarke und C-Control. Hach, waren das Zeiten (ohne Basic-Compiler, obwohl der sich so nannte **g**). Heutzutage muss man nicht mehr diese Interpreter-Last mit sich(im Code) herum schleppen. Oder gar das Basic, was meine persönliche Meinung ist:P Basic ist natürlich schön für Einsteiger.
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.