Re: HBasic
Verfasst: Sa 27. Okt 2012, 00:49
Habe mal den PASM-Teil um eine Schreibroutine erweitert.
mal sehen welche erkenntnisse sich daraus ergeben.
Code: Alles auswählen
mov temp2, h00007f00
rdbyte temp1, temp2
call #eRamWB
call #eRamRB
wrbyte temp1, temp2
Code: Alles auswählen
'---------------------------------------------------------------------
' eRam
'
' temp1 Daten
' temp2 Adresse
' temp3 temp
'---------------------------------------------------------------------
eRamWB ' byte schreiben
mov dira, dout ' bus auf ausgabe schalten
call #setadr ' adresse setzen
and temp1, h000000ff
or outa, temp1 ' wert an ports setzen
xor outa, _bwr ' schreibsignal aktiv
mov dira, dinp ' bus auf eingabe schalten
mov outa, _s1 ' bus wieder inaktiv
andn outa, _s1 ' bus wieder inaktiv
eRamWB_ret ret
'---------------------------------------------------------------------
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