Danke Euch beiden
habe an die BUS Konfiguration nicht mehr gedacht jetzt geht es.
Grüsse Joshy
Zugriffoptimierung eterner Ram
Re: Zugriffoptimierung eterner Ram
Wenn im IOS default mäsig alle /CS Leitungen Ausgang sind und der Daten Bus Eingang
warum muss man dann im Spinteil outa:=0 benutzen ?
Das kommt doch dem Chip Select /CS gleich und selektiert kurzfristing
Administar,Bellatrix, RAM1, RAM2
ich verstehe es noch nicht wirklich
warum muss man dann im Spinteil outa:=0 benutzen ?
Das kommt doch dem Chip Select /CS gleich und selektiert kurzfristing
Administar,Bellatrix, RAM1, RAM2
ich verstehe es noch nicht wirklich
Code: Alles auswählen
PRI poke(val,adr)
outa:=0 ' <----- was passiert hier ???
Param1 := adr
Param2 := val
JobNr := JOB_POKE
repeat until JobNr == JOB_NONE
Code: Alles auswählen
DAT ORG 0
cog_loop rdlong _job,par wz ' get job id
if_z jmp #cog_loop
cmp _job,#JOB_poke wz
if_z jmp #cog_poke
' ignore unknow job
jmp #cog_loop
cog_ready mov _ptr,par
mov _job,#JOB_NONE
wrlong _job,_ptr
jmp #cog_loop
cog_poke mov _ptr,par ' pointer of params
add _ptr,#4 ' move to param 1
rdlong _adr,_ptr ' get address
add _ptr,#4 ' move to param 2
rdlong _val,_ptr ' get value
mov _tmp,_adr ' make a copy
and _val,#$FF ' only D7-D0
' BUS
mov outa,_BUS_INIT ' all de-selected
mov dira,_DIR_OUT ' D7..D0 as output
' ADR HI
and _adr,_m_A18_A11 ' hi part
shr _adr,#3 ' move to latch port
or _adr,_BUS_AL_HI ' BUS + AL hi
mov outa,_adr ' BUS + AL hi + ADR
and _adr,_BUS_AL_LO
mov outa,_adr ' BUS + AL lo + LATCH
' ADR LO
mov _adr,_tmp ' from copy
and _adr,_m_A10_A00 ' lo part
shl _adr,#8 ' mov to address port
or _adr,_val ' D7-D0
or _adr,_BUS_INIT ' BUS
and _tmp,_m_A19 wz ' MSB of address
mov _tmp,_adr
mov outa,_adr ' BUS + A10-A0 + D7-D0
if_z and _adr,_BUS_WR_R1 ' address <= $07FFFF
if_nz and _adr,_BUS_WR_R2 ' address >= $800000
mov outa,_adr ' /WR+/RAMx + A10-A0 + D7-D0
mov outa,_tmp ' BUS + A10-A0 + D7-D0
mov outa,#0
mov dira, _DIR_IN
jmp #cog_ready
' __ ____
' HWCL ACCRR [Latch ]
' SRLE LSShlAAA AAAAAAAA DDDDDDDD
' kD abioA98 76543210 76543210
_DIR_OUT long %00000111_11111111_11111111_11111111
_DIR_IN long %00000111_11111111_11111111_00000000
_BUS_INIT long %00000100_01111000_00000000_00000000
_BUS_AL_HI long %00000100_11111000_00000000_00000000
_BUS_AL_LO long %00000100_01111000_11111111_00000000
_BUS_WR_R1 long %00000000_01110111_11111111_11111111
_BUS_WR_R2 long %00000000_01101111_11111111_11111111
_BUS_WR_OFF long %00000100_01111111_11111111_11111111
_m_A19 long %00000000_00001000_00000000_00000000
_m_A18_A11 long %00000000_00000111_11111000_00000000
_m_A10_A00 long %00000000_00000000_00000111_11111111
_job res 1
_ptr res 1
_adr res 1
_val res 1
_tmp res 1
FIT
- drohne235
- Administrator
- Beiträge: 2284
- Registriert: So 24. Mai 2009, 10:35
- Wohnort: Lutherstadt Wittenberg
- Kontaktdaten:
Re: Zugriffoptimierung eterner Ram
Mit "dira := 0" (nicht outa!) schaltest du das Port auf "Eingang", damit wird es inaktiv bzgl. der entsprechenden COG.
"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