Re: HBasic
Verfasst: Fr 26. Okt 2012, 22:57
Funktioniert es denn jetzt soweit mit deinem Code?
Retro Style Eigenbau Computer mit Parallax Propeller
https://www.hive-project.de/board/
Code: Alles auswählen
' +------------------------------- /hs
' |+------------------------------ /wr
' ||+----------------------------- busclk
' |||+---------------------------- hbeat
' |||| +-------------------------- al
' |||| |+------------------------- /bel
' |||| ||+------------------------ /adm
' |||| |||+----------------------- /ram2
' |||| ||||+---------------------- /ram1
' |||| ||||| +---------- a0..10
' |||| ||||| |
' |||| ||||| | +- d0..7
' |||| |||||+----------+ +------+
_al long %00000000_10000000_00000000_00000000 ' /al bitmaske
_bwr long %00000100_00000000_00000000_00000000 ' /wr bitmaske
_ram1 long %00000000_00001000_00000000_00000000 ' /ram1 bitmaske
_latch long %00000000_00000000_11111111_00000000 ' latch bitmaske
_adr long %00000000_00000111_11111111_00000000 ' adrbus bistmaske
dinp long %00000111_11111111_11111111_00000000 ' bus input
dout long %00000111_11111111_11111111_11111111 ' bus output
_s1 long %00000100_01111000_00000000_00000000 ' bus inaktiv <--- Da ist das Bitmuster! :)
_b1 long %00000000_00111000_00000000_00000000 ' adm=1, bel=0, wr=0, busclk=0
_b2 long %00000010_00111000_00000000_00000000 ' adm=1, bel=0, wr=0, busclk=1
_b3 long %00000110_00111000_00000000_00000000 ' adm=1, bel=0, wr=1, busclk=1
_a1 long %00000000_01011000_00000000_00000000 ' adm=0, bel=1, wr=0, busclk=0
_a2 long %00000010_01011000_00000000_00000000 ' adm=0, bel=1, wr=0, busclk=1
_a3 long %00000110_01011000_00000000_00000000 ' adm=0, bel=1, wr=1, busclk=1
_hs long %00001000_00000000_00000000_00000000 ' hs=1?
_zero long %00000000_00000000_00000000_00000000 '
Code: Alles auswählen
'1. schreiben in den externen RAM
ios.ram_wrlong(0,$0008_4638,$7f00)
ios.ram_wrlong(0,$3143_4950,$7f04)
ios.ram_wrlong(0,$000A_3035,$7f08)
ios.ram_wrlong(0,$3532_0000,$7f0C)
ios.ram_wrlong(0,$0000_0000,$7f10)
'2. Lesen aus den externen RAM lesen und schreiben in hRAM
long[$7f00]:=ios.ram_rdlong(0,$7f00)
long[$7f04]:=ios.ram_rdlong(0,$7f04)
long[$7f08]:=ios.ram_rdlong(0,$7f08)
long[$7f0C]:=ios.ram_rdlong(0,$7f0C)
long[$7f10]:=ios.ram_rdlong(0,$7f10)
Code: Alles auswählen
'2. Lesen aus den externen RAM lesen und schreiben in hRAM
mov temp2, h00007f00
call #eRamRB
wrbyte temp1, temp2 '<<- liest $00 sollte aber $38 sein
add temp2, h00000001
call #eRamRB
' wrbyte temp1, temp2
add temp2, h00000001
call #eRamRB
' wrbyte temp1, temp2
add temp2, h00000001
call #eRamRB
' wrbyte temp1, temp2
add temp2, h00000001
call #eRamRB
' wrbyte temp1, temp2
Code: Alles auswählen
mov temp2, h00007f00 'das ist wahrscheinlich eine adresse?
call #eRamRB 'von welcher hier ein byte gelesen wird?
wrbyte temp1, temp2 'was wird da aus temp1 auf temp2 (die adresse) kopiert?
add temp2, h00000001 'die neue adresse erhöhen
call #eRamRB 'byte von der adresse in temp2 lesen
add temp2, h00000001 'adresse+1
call #eRamRB '?
add temp2, h00000001 '??
call #eRamRB `???
add temp2, h00000001
call #eRamRB
Code: Alles auswählen
'---------------------------------------------------------------------
' eRam
'
' temp1 Daten
' temp2 Adresse
' temp3 temp
'---------------------------------------------------------------------
eRamRB ' byte lesen
call #setadr ' adresse setzen
mov temp1, ina ' port einlesen
mov outa, _s1 ' bus wieder inaktiv
and temp1, h000000ff ' daten ausmaskieren
eRamRB_ret ret
'---------------------------------------------------------------------
setadr ' adresse verarbeiten
'hwt-adresse --> latch
mov temp3, temp2 ' adresse holen
shr temp3, #$3 ' adresse für latch zurechtschieben
and temp3, _latch ' latchbits ausmaskieren
or outa, temp3 ' adresse für latch an ports setzen
xor outa, _al ' wert in latch übernehmen
mov outa, _s1 ' wert in latch übernehmen
' nwt-adresse setzen
mov temp3, temp2 ' adresse holen
shl temp3, #$8 ' adresse zurechtschieben
and temp3, _adr ' adresse ausmaskieren
or outa, temp3 ' adresse an ports setzen
xor outa, _ram1 ' rambank 1 selektieren
setadr_ret ret
Na da kann ich ja ohne Bdenken ein Gläßchen nachschenken.mache gerade mal einen Speichertest aber bis jetzt alles I.O.
wie viel Durchläufe hatt das Teil?drohne235 hat geschrieben:Na da kann ich ja ohne Bdenken ein Gläßchen nachschenken.
Zykluszeit wird größer, wrdn immer wnger Buchtaben auf dem Ky.. naja dem Dingens halt... Also mach ma fertisch dein Basic da!PIC18F2550 hat geschrieben:
wie viel Durchläufe hatt das Teil?drohne235 hat geschrieben:Na da kann ich ja ohne Bdenken ein Gläßchen nachschenken.
Das artet ja in Nachtarbeit aus.