HIVE-Project

Retro Style Eigenbau Computer mit Parallax Propeller
Aktuelle Zeit: Mi 24. Okt 2018, 00:20

Alle Zeiten sind UTC [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 191 Beiträge ]  Gehe zu Seite 1, 2, 3, 4, 5 ... 20  Nächste
Autor Nachricht
 Betreff des Beitrags: HBasic
BeitragVerfasst: Di 18. Sep 2012, 19:57 
Offline
Benutzeravatar

Registriert: Fr 30. Sep 2011, 13:08
Beiträge: 2373
Wie währe es mit einem Basic wo jeder Befehl nur 2long's lang währe.
Die ausgeschriebenen Zeilen baut der Bellatrix zusammen.
Die Eingabezeile wird auch im Bellatrix Zusammengebaut.
Regnatix bekommt doppelrolle einmal compiler und einmal Runtime.
Token im hRam Variabeln bis long im hRam 4x26Long's
Texte und Strings Quelltexte und compilierter Cod vor Start der Runtime im Externen Ram
Hauptroutine mit 1.COG arbeitet nach starten in Spinn und stellt schnittstelle zur Hive Hartware zur verfügung.
Zur Zeit nur mal so eine IDEE :D :D :D

_________________
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.


Zuletzt geändert von PIC18F2550 am Sa 10. Nov 2012, 12:52, insgesamt 3-mal geändert.

Nach oben
 Profil  
 
 Betreff des Beitrags: Re: TokenBasic
BeitragVerfasst: Mi 19. Sep 2012, 18:21 
Offline
Administrator
Benutzeravatar

Registriert: So 24. Mai 2009, 10:35
Beiträge: 2256
Wohnort: Lutherstadt Wittenberg
Also an einem Basic besteht definitiv Interesse, wurde ja schon öfters hier erwähnt.

Idee: Warum muss der Compiler in Regnatix laufen, verschwendet dort doch nur wertvollen hRAM?! Im Prinzip könnte in Regnatix doch nur die Runtime laufen und Bella compiliert komplett. Das compilieren wäre ja auch nicht zeitkritisch, weshalb man den Compiler in Bella auch in Spin realisieren könnte. So könnte man fertige Compilate auch mit maximalen Ressourcen in ganz anderen Props laufen lassen - man benötigt nur die die Basic-VM und der Rest des Speichers ist frei für das eigentliche Programm.

Wenn man das weiterdenkt, könnte der Basic-Compiler im Prinzip auch Spin-Bytecode erzeugen.

_________________
"Ob Sie denken, dass Sie es können, oder ob Sie denken, dass Sie es nicht können - in beiden Fällen haben Sie recht." Henry Ford


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: TokenBasic
BeitragVerfasst: Mi 19. Sep 2012, 20:22 
Offline
Benutzeravatar

Registriert: Fr 30. Sep 2011, 13:08
Beiträge: 2373
Hi,

keine VM.

Der Compiler kann fast den gesamten hRam verwenden. Der Quelltext und das compilat liegen im externen Ram.
Nach einem reeboot von Regnatix wird von IDE auf Runtime umgeschaltet(Regnatix wird neu geladen RuntimeCOG's werden gestartet und Token werden in hRam umgeladen und COG's gestartet)
Der obere teil ist nur die Runtime1 die IDE ist noch nicht in arbeit.

Der Speicher im bellatrix ist im graphigmodus für den Quelltext viel zu klein.

Die Runtime ist ausschließlich auf den 6xCOG-Ram beschränkt die Variabeln 4x26 longs,1x26 long's mit Zeigern in den externenRam (64K für 0 therminierte Strings und Text Konstanten)

Am ende stehen ca 16k (4000 befehle) zur verfügung.

_________________
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: TokenBasic
BeitragVerfasst: Mi 19. Sep 2012, 21:55 
Offline
Administrator
Benutzeravatar

Registriert: So 24. Mai 2009, 10:35
Beiträge: 2256
Wohnort: Lutherstadt Wittenberg
Klingt interessant! :)

_________________
"Ob Sie denken, dass Sie es können, oder ob Sie denken, dass Sie es nicht können - in beiden Fällen haben Sie recht." Henry Ford


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: TokenBasic
BeitragVerfasst: Do 20. Sep 2012, 20:50 
Offline
Benutzeravatar

Registriert: Fr 30. Sep 2011, 13:08
Beiträge: 2373
Hi drohne235.

Hat du schon ein modul das die kommunikation über den Bus in PASM realisiert?

Wenn ich die Bus und Ram sachen auf ein oder 2 COG's aufteilen kann hätte ich den Speicher von 0x01F8 bis 0x7FFF für den Programmcode frei. :mrgreen:

_________________
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.


Zuletzt geändert von PIC18F2550 am So 23. Sep 2012, 20:41, insgesamt 1-mal geändert.

Nach oben
 Profil  
 
 Betreff des Beitrags: Re: HBasic
BeitragVerfasst: Fr 21. Sep 2012, 13:58 
Offline
Administrator
Benutzeravatar

Registriert: So 24. Mai 2009, 10:35
Beiträge: 2256
Wohnort: Lutherstadt Wittenberg
Der m-Core hat die Kommunikation direkt per PASM integriert. Schau mal in dem letzten Archiv hier im Forum (Link unten), dort findest du das im Regnatix-Code, Ordner "rom". Ist aber nur die Kommunikation von Regnatix aus, die Slaves haben noch Spin-Code.

http://hive-project.de/board/download/file.php?id=1618

_________________
"Ob Sie denken, dass Sie es können, oder ob Sie denken, dass Sie es nicht können - in beiden Fällen haben Sie recht." Henry Ford


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: HBasic
BeitragVerfasst: Sa 22. Sep 2012, 23:25 
Offline
Benutzeravatar

Registriert: Fr 30. Sep 2011, 13:08
Beiträge: 2373
Super teilchen Danke.
Als erstes einmal Printchr und Printstr unabhängig vom graphigtreiber.

Das Problem sind die underschiedlichen busaufrufe der Treiber.

Wenn aufruf zum Treiber nich passt ist mis... vorprogrammiert.

VGA, TV, g0, ... sollten gemeinsame Schnittstelle besitzen und in einer Fehlansprache eine Fehlermeldung mit der LED Ausgeben.

Das würde den verwaltungsaufwand in den Programmen erheblich verringern(reg-ios).

_________________
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: HBasic
BeitragVerfasst: So 23. Sep 2012, 11:27 
Offline
Administrator
Benutzeravatar

Registriert: So 24. Mai 2009, 10:35
Beiträge: 2256
Wohnort: Lutherstadt Wittenberg
Im m-Core findest du auch gleich fertige PASM-Routinen, um auf den externen RAM zuzugreifen.

_________________
"Ob Sie denken, dass Sie es können, oder ob Sie denken, dass Sie es nicht können - in beiden Fällen haben Sie recht." Henry Ford


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: HBasic
BeitragVerfasst: So 23. Sep 2012, 14:14 
Offline
Benutzeravatar

Registriert: Fr 30. Sep 2011, 13:08
Beiträge: 2373
Nicht so schnell mit dem alten Gaul. :shock:
Erstmal mus das Grundgerüst sauber laufen (Print und Input)

_________________
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: HBasic
BeitragVerfasst: Mo 24. Sep 2012, 18:52 
Offline
Benutzeravatar

Registriert: Fr 30. Sep 2011, 13:08
Beiträge: 2373
Habe mal meinen Z80 verseuchtes Gedankengut gelöscht. :D so geht das ja nimmer. :shock:

Hier mal das neue Runtime Grundmodell.
Code:
PUB Start(status)
    result := cognew(@runtime, status) + 1              'Status ist zeiger auf syncronzelle der COG's

DAT{{Runtime COG***********************************************************************************}}
runtime
              org       0
              rdlong    stat,   #par                    'Statuszeiger laden
              mov       areg,   stat
              add       areg,   h00000001               'Adresszeiger berechnen
RESTART
              mov       line,   stat
              add       line,   hline                   'Linezeiger berechnen (80 Variabeln/Zeiger+Adressregister)

TLOOP         wrlong    areg,   line                    'neuen Linezeiger schreiben

RTLOOP        rdlong    temp,   stat                    'status laden
              cmp       temp,   h00000000
        if_z  jmp       #RESTART                        'Test auf startfreigabe =0 = Stop >0 = Start

              rdlong    line,   areg                    'Linezeiger laden
              rdlong    code,   line                    'Code und Arg1 laden
              mov       arg1,   code                    '
              shr       code,   h00000010
              and       arg1,   h0000ffff

              add       line,   h00000001

              rdlong    arg23,  line                    'Arg2 und Arg3 Laden
              mov       arg2,   arg23                   '
              mov       arg3,   arg23                   '
              shr       arg2,   h00000010
              and       arg3,   h0000ffff

              add       line,   h00000001               '(Zeiger auf neuen TOKEN)

              cmp       code,   T0000  wz               'Token 0000 = NEW
        if_z  jmp       #J0000
              cmp       code,   T0001  wz               'Token 0000 = END
        if_z  jmp       #J0001
              cmp       code,   T0002  wz               'Token 0000 = STOP
        if_z  jmp       #J0002

              jmp       #RTLOOP

'Konstanten & Variabeln
h00000000 long    $00000000     '0
h00000001 long    $00000001     '1
h00000010 long    $00000010     '16 bit verschieben
h0000ffff long    $0000FFFF     '16 bit Lowmaske
hline     long 6 * 26 + 1       'Adressberechnung
temp      long 0                'Merker
stat      long 0                'Zeiger auf Statusregister
areg      long 0                'Zeiger auf token im hRAM
line      long 0                'Merker line Nummer
code      long 0                'Tockencode
arg1      long 0                'Tokenargument 1
arg23     long 0                'Longargument
arg2      long 0                'Tokenargument 2
arg3      long 0                'Tokenargument 3
{{Tokencode}}

T0000 long $0000 'NEW
J0000   ' Statusregister auf 0 setzen um alle Runtimmodule zu stoppen und ihre internen Register in grundstellung zu bringen
        ' Zeilenregister auf 1. Zeile stellen
              jmp       #TLOOP
T0001 long $0001 'END
J0001   ' Statusregister auf 0 setzen um alle Runtimmodule zu stoppen und ihre internen Register in grundstellung zu bringen
        ' Zeilenregister auf 1. Zeile stellen
              wrlong    stat,   #0
              jmp       #RESTART
T0002 long $0002 'STOP
J0002   ' Statusregister auf 1 setzen um IDE zu zeigen das ein STOP-Befehl empfangen wurde
        ' Zeilenregister zeigt auf nächste Zeile
              wrlong    stat,   #1
              jmp       #TLOOP

              fit   $1F0
'**************************************************************************************************
Dateianhang:
Bildschirmfoto_24.09.2012.png
Das währen ca.400longs für Routinen :D
Kann mal jemand drüberschaun ob das so richtig ist?

_________________
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.


Zuletzt geändert von PIC18F2550 am Di 13. Nov 2012, 18:11, insgesamt 1-mal geändert.

Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 191 Beiträge ]  Gehe zu Seite 1, 2, 3, 4, 5 ... 20  Nächste

Alle Zeiten sind UTC [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de