HBasic

Du hast ein Betriebssystem für den Hive geschrieben oder beschäftigst dich mit den grundlegenden Systemfunktionen, dann bist du hier richtig!
Benutzeravatar
PIC18F2550
Beiträge: 2851
Registriert: Fr 30. Sep 2011, 13:08

Re: HBasic

Beitrag von PIC18F2550 »

:SCHREIEN Erstmal muß ich die Runtime umbauen.
z.Z. verwende ich noch ein jmp für die Berechnung des Sprungverteilers das wird auf ein call umgestellt.
Der Rücksprung ist dann natürlich ein ret. :DAUMENHOCH
Das gibt mir die möglichkeit die Eigenen routinen in der Runtime mehrfach zu verwenden.
z.B. Laden des Bellatrixcodes. :LACHEN
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
Benutzeravatar
PIC18F2550
Beiträge: 2851
Registriert: Fr 30. Sep 2011, 13:08

Re: HBasic

Beitrag von PIC18F2550 »

Ein Thema beschäftigt mich immer noch:
wie sag ich Bellatrix und Administra das das gerade übertragene Byte das 1. byt von einer Bytfolge ist.?

ich dachte da das beim 1. Byte das /cs Signal bei clk aktiv ist und bei den nachvolgenden nicht sondern nur das clk signal wechselt.
/wr und /hs werden dabei normal weiter bedient.

in Regnatix kommt nur eine weitere Sende-Routine hinein.
in Administra und Bellatrix eine Empfangs-Routine hinzu.

das dürfte keine große mühe machen. :DAUMENHOCH
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
Benutzeravatar
PIC18F2550
Beiträge: 2851
Registriert: Fr 30. Sep 2011, 13:08

Re: HBasic

Beitrag von PIC18F2550 »

:shock: Seltsame zeichen beim Starten der Runtime?

:EIEI Das ist nicht r48 sondern r50 da wurde ein Befehl "zum laden eines neuen Treibers für Bellatrix" verschoben :LACHEN
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
Benutzeravatar
PIC18F2550
Beiträge: 2851
Registriert: Fr 30. Sep 2011, 13:08

Re: HBasic

Beitrag von PIC18F2550 »

HBasic mit HIVE-VGA-Treiber.
2012-11-15_20-14-58_588.jpg
SPIN-PASM geht

HBasic mit HVGA-Treiber in PASM
2012-11-15_20-15-19_233.jpg
leider scheind die PASM-PASM Kopplung nicht richtig zu arbeiten mal sehen woran das liegt.(es fehlt die letzte Zeile)
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
Benutzeravatar
PIC18F2550
Beiträge: 2851
Registriert: Fr 30. Sep 2011, 13:08

Re: HBasic

Beitrag von PIC18F2550 »

Ich hab mal die bus-routine zu bellatrix neu erfunden :LACHEN

Code: Alles auswählen

'---------------------------------------------------------------------
'                    +- /hs
'                    |+- /wr
'                    ||+- busclk
'                    |||+- hbeat
'                    |||| +- al
'                    |||| |+- /bel
'                    |||| ||+- /adm
'                    |||| |||+- /ram2
'                    |||| ||||+- /ram1
'                    |||| |||||           +-a0..10
'                    |||| |||||           |
'                    |||| |||||           |        +- d0..7
'                    |||| |||||+-- -------+ +------+
'port   long    %00000000_00000aaa_aaaaaaaa_dddddddd  ' a: adr, d: daten'Konstanten
_csb    long    %00000000_01000000_00000000_00000000  ' cs=1 Bellatrix
_csa    long    %00000000_00100000_00000000_00000000  ' cs=1 Administra
_hs     long    %00001000_00000000_00000000_00000000  ' hs=1
bput
                and     temp1,      #$FF    ' Daten Formatieren
                waitpeq _hs,        _hs     ' warten bis hs=1
                or      dira,       #$FF    ' P00-P07 auf ausgabe schalten
                or      outa,       temp1   ' Daten ausgeben
                andn    outa,       _csb    ' CS an Bellatrix
                waitpeq h00000000,  _hs     ' warten bis hs=0
                or      outa,       _csb    ' CS an Bellatrix deaktivieren
                waitpeq _hs,        _hs     ' warten bis hs=1
                andn    dira,       #$FF    ' P00-P07 auf eingabe schalten
bput_ret        ret
' ---------------------------------------------------------------------
Richtig der busclk ist seiner Aufgabe entbunden.
Möglich wird das weil nur Regnatix die /cs signale setzt. :LACHEN

Als nächstes ist der HVGA-Treiber tran.
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
Benutzeravatar
PIC18F2550
Beiträge: 2851
Registriert: Fr 30. Sep 2011, 13:08

Re: HBasic

Beitrag von PIC18F2550 »

So und hier das gegenstück im Bellatrix :LACHEN

Code: Alles auswählen

'       hbeat   --------+
'       clk     -------+|
'       /wr     ------+||
'       /hs     -----+||| +------------------------- /cs
'                    |||| |                 -------- d0..d7
'port   long    %00000000_00000000_00000000_dddddddd  ' a: adr, d: daten'Konstanten
_cs     long    %00000000_10000000_00000000_00000000
_hs     long    %00001000_00000000_00000000_00000000
rbus    'ein byte vom bus lesen
                waitpeq     h00000000,  _cs         ' cs = 0
                mov         temp1,      ina         ' Daten einlesen
                andn        outa,       _hs         ' Daten quittieren
                and         temp1,      #$FF        ' Daten formatieren
                waitpeq     _cs,        _cs         ' cs = 1
                or          outa,       _hs         ' Daten quittieren
rbus_ret        ret
Jetzt nur noch Testen. :mrgreen:
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
Benutzeravatar
PIC18F2550
Beiträge: 2851
Registriert: Fr 30. Sep 2011, 13:08

Re: HBasic

Beitrag von PIC18F2550 »

Bellatrix mit M1 erkennung.
Sollte der zu erwartende 1. Befehl kein M1 sein bleibt der Bus stehen und mit einem LED-Testbord kann der aktuelle Byte auf dem Bus angesehen werden. :DAUMENHOCH

Code: Alles auswählen

'       hbeat   --------+
' M1    clk     -------+|
'       /wr     ------+||
'       /hs     -----+||| +------------------------- /cs
'                    |||| |                 -------- d0..d7
'port   long    %00000000_00000000_00000000_dddddddd  ' a: adr, d: daten'Konstanten
_cs1    long    %00000010_10000000_00000000_00000000
_cs     long    %00000000_10000000_00000000_00000000
_hs     long    %00001000_00000000_00000000_00000000


_cs1    'erstes byte vom bus lesen
                waitpeq     h00000000,  _cs1        ' cs = 0 & clk = 0
                jmp         #_cs01
rbus    'ein byte vom bus lesen
_cs
                waitpeq     h00000000,  _cs         ' cs = 0
_cs01           mov         temp1,      ina         ' Daten einlesen
                andn        outa,       _hs         ' Daten quittieren
                and         temp1,      #$FF        ' Daten formatieren
                waitpeq     _cs,        _cs         ' cs = 1
                or          outa,       _hs         ' Daten quittieren
rbus_ret        ret
drohne235 währe so etwas was für TRIOS & FORTH ? :SCHRAUBEN
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
Benutzeravatar
PIC18F2550
Beiträge: 2851
Registriert: Fr 30. Sep 2011, 13:08

Re: HBasic

Beitrag von PIC18F2550 »

:SCHREIEN das /wr signal sollte immer mit ausgewertet werden.

Code: Alles auswählen

_cs1   ' M1-Befehl nur lesend
_cs_r
_cs_w
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
Benutzeravatar
PIC18F2550
Beiträge: 2851
Registriert: Fr 30. Sep 2011, 13:08

Re: HBasic

Beitrag von PIC18F2550 »

PIC18F2550 hat geschrieben:Erstmal muß ich die Runtime umbauen.
z.Z. verwende ich noch ein jmp für die Berechnung des Sprungverteilers das wird auf ein call umgestellt.
:SCHREIEN Das geht nicht weil ich nur ein Call habe aber mehrere ret. :evil:

Jetzt binn ich beim jmpret angekommen.

jumpret arg1, arg2

arg2 ist das ziel wo hingesprungen wird das ist schon klar (Zelle oder Marke)

arg1 ist die rückkehr adresse (wenn ich richtig gelesen habe wird diese beim jumpret gesetzt? stimmt das so?)


besser währe wenn ich arg1 selber bestimmen kann (Zelle oder Marke).
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
Benutzeravatar
kuroneko
Beiträge: 202
Registriert: Sa 22. Okt 2011, 13:05
Wohnort: FN, Germany

Re: HBasic

Beitrag von kuroneko »

PIC18F2550 hat geschrieben:besser währe wenn ich arg1 selber bestimmen kann (Zelle oder Marke).
Kannst Du ja auch. jmpret a, [#]b macht zwei dinge, movs a, #$+1 und jmp [#]b. Der Assembler transformiert ein call #label auch nur in ein jmpret label_ret, #label damit ret funktioniert.
Antworten