dect
/
asl
Archived
13
0
Fork 0
This repository has been archived on 2022-02-17. You can view files and clone it, but cannot push or open issues or pull requests.
asl/include/stddefxa.inc

406 lines
19 KiB
PHP

save
listing off ; kein Listing über diesen File
;****************************************************************************
;* *
;* AS 1.41 - Datei STDDEFXA.INC *
;* *
;* Sinn : enthält SFR- und Bitdefinitionen für die XA-Prozessoren *
;* *
;* letzte Änderungen : 29. 6.1996 *
;* 18. 8.1998 bei P_51, F0_51 und F1_51 den Postfix *
;* wieder entfernt, da diese sich mit kei- *
;* nen XA-Bits namensmaessig "beissen" *
;* *
;****************************************************************************
ifndef stddefxainc ; verhindert Mehrfacheinbindung
stddefxainc equ 1
if (MOMCPUNAME<>"XAG3")&&(MOMCPUNAME<>"XAG1")&&(MOMCPUNAME<>"XAG1")
fatal "Falscher Prozessortyp eingestellt: nur XAG1, XAG2 oder XAG3 erlaubt!"
endif
if MOMPASS=1
message "Philips-XA-SFR-Definitionen (C) 1996 Alfred Arnold"
endif
;----------------------------------------------------------------------------
; Prozessorkern
cs port 443h ; Code-Segment
ds port 441h ; Daten-Segment
es port 442h ; Extra-Segment
ssel port 403h ; Auswahl-Bits, ob [R0..R6] mit ES/DS arbeiten
r0seg bit ssel.0
r1seg bit ssel.1
r2seg bit ssel.2
r3seg bit ssel.3
r4seg bit ssel.4
r5seg bit ssel.5
r6seg bit ssel.6
eswen bit ssel.7 ; Schreibzugriffe über ES erlauben/sperren (Usermode)
pswl port 400h ; Prozessorstatus(L):
z bit pswl.0 ; Zero-Flag
n bit pswl.1 ; Negativ-Flag
v bit pswl.2 ; Overflow-Flag
ac bit pswl.6 ; Hilfs-Carry (für DAA)
c bit pswl.7 ; Carry
pswh port 401h ; Prozessorstatus(H):
im0 bit pswh.0 ; Interrupt-Maske Bit 0
im1 bit pswh.1 ; Interrupt-Maske Bit 1
im2 bit pswh.2 ; Interrupt-Maske Bit 2
im3 bit pswh.3 ; Interrupt-Maske Bit 3
rs0 bit pswh.4 ; Register-Bank-Auswahl Bit 0
rs1 bit pswh.5 ; Register-Bank-Auswahl Bit 1
tm bit pswh.6 ; CPU im Einzelschritt-Modus
sm bit pswh.7 ; CPU im Supervisor-Mode
psw51 port 402h ; emuliertes 8051-PSW:
p bit psw51.0 ; Paritätsbit
f1 bit psw51.1 ; User-Flag 1
v_51 bit psw51.2 ; Overflow-Flag
rs0_51 bit psw51.3 ; Register-Bank-Auswahl Bit 0
rs1_51 bit psw51.4 ; Register-Bank-Auswahl Bit 1
f0 bit psw51.5 ; User-Flag 0
ac_51 bit psw51.6 ; Hilfs-Carry (für DAA)
c_51 bit psw51.7 ; Carry
pcon port 404h ; Steuerung Power-Modi
idl bit pcon.0 ; Idle-Modus aktivieren
pd bit pcon.1 ; Powerdown-Modus aktivieren
;----------------------------------------------------------------------------
; Chip-Konfiguration
scr port 440h ; Systemkonfiguration
;pz bit scr.0 ; Adreßräume auf 64K begrenzen
;cm bit scr.1 ; 8051-kompatibles Registermapping
;pt0 bit scr.2 ; Vorteiler-Einstellung
;pt1 bit scr.3
bcr port 46ah ; Bus-Konfiguration
;bc0 bit bcr.0 ; Einstellung 12/16/20/24 Adreßleitungen
;bc1 bit bcr.1
;bc2 bit bcr.2 ; Einstellung 8/16 Datenleitungen
;busd bit bcr.3 ; Bus komplett abschalten
;waitd bit bcr.4 ; WAIT-Pin ignorieren
btrl port 468h ; Einstellung Bus-Timing(L)
;dra0 bit btrl.0 ; Gesamtlänge Lesezyklus
;dra1 bit btrl.1
;dr0 bit btrl.2 ; Länge Lesezyklus ohne ALE
;dr1 bit btrl.3
;dwa0 bit btrl.4 ; Gesamtlänge Schreibzyklus
;dwa1 bit btrl.5
;dw0 bit btrl.6 ; Länge Schreibzyklus ohne ALE
;dw1 bit btrl.7
btrh port 469h ; Einstellung Bus-Timing(L)
;cra0 bit btrl.0 ; Gesamtlänge Codelesezyklus
;cra1 bit btrl.1
;cr0 bit btrl.2 ; Länge Codelesezyklus ohne ALE
;cr1 bit btrl.3
;alew bit btrl.5 ; Länge ALE-Puls
;wm0 bit btrl.6 ; Länge WR-Puls
;wm1 bit btrl.7
;----------------------------------------------------------------------------
; Interrupt-Steuerung
iel port 426h ; Interruptfreigabe(L):
ex0 bit iel.0 ; externer Interrupt 0
et0 bit iel.1 ; Timer 0
ex1 bit iel.2 ; externer Interrupt 1
et1 bit iel.3 ; Timer 1
et2 bit iel.4 ; Timer 2
ea bit iel.7 ; global
ieh port 427h ; Interruptfreigabe(H):
eri0 bit ieh.0 ; Empfang UART0
eti0 bit ieh.1 ; Versand UART0
eri1 bit ieh.2 ; Empfang UART1
eti1 bit ieh.3 ; Versand UART1
ipa0 port 4a0h ; Interruptprioritäten(0):
;px0 bit ipa0.0 ; externer Interrupt 0 (4 Bits)
;pt0 bit ipa0.4 ; Timer 0 (4 Bits)
ipa1 port 4a1h ; Interruptprioritäten(1):
;px1 bit ipa1.0 ; externer Interrupt 1 (4 Bits)
;pt1 bit ipa1.4 ; Timer 1 (4 Bits)
ipa2 port 4a2h ; Interruptprioritäten(2):
;pt2 bit ipa1.0 ; Timer 2 (4 Bits)
ipa4 port 4a4h ; Interruptprioritäten(4):
;pri0 bit ipa4.0 ; Empfang UART0 (4 Bits)
;pti0 bit ipa4.4 ; Versand UART0 (4 Bits)
ipa5 port 4a5h ; Interruptprioritäten(4):
;pri1 bit ipa5.0 ; Empfang UART1 (4 Bits)
;pti1 bit ipa5.4 ; Versand UART1 (4 Bits)
swe port 403h ; Freigabe Software-Interrupts
swe1 bit swe.0
swe2 bit swe.1
swe3 bit swe.2
swe4 bit swe.3
swe5 bit swe.4
swe6 bit swe.5
swe7 bit swe.6
swr port 42ah ; Auslösung Software-Interrupts
swr1 bit swr.0
swr2 bit swr.1
swr3 bit swr.2
swr4 bit swr.3
swr5 bit swr.4
swr6 bit swr.5
swr7 bit swr.6
;----------------------------------------------------------------------------
; Ports
p0 port 430h ; Datenregister Port 0
ad0 bit p0.0 ; Datenbit 0/Adreßbit 4
ad1 bit p0.1 ; Datenbit 1/Adreßbit 5
ad2 bit p0.2 ; Datenbit 2/Adreßbit 6
ad3 bit p0.3 ; Datenbit 3/Adreßbit 7
ad4 bit p0.4 ; Datenbit 4/Adreßbit 8
ad5 bit p0.5 ; Datenbit 5/Adreßbit 9
ad6 bit p0.6 ; Datenbit 6/Adreßbit 10
ad7 bit p0.7 ; Datenbit 7/Adreßbit 11
p1 port 431h ; Datenregister Port 1
a0 bit p1.0 ; Adreßleitung 0 (8-Bit-Modus)
wrh bit p1.0 ; Schreibimpuls D8-D15 (16-Bit-Modus)
a1 bit p1.1 ; Adreßleitung 1
a2 bit p1.2 ; Adreßleitung 2
a3 bit p1.3 ; Adreßleitung 3
rxd1 bit p1.4 ; Empfangsleitung UART1
txd1 bit p1.5 ; Sendeleitung UART1
t2 bit p1.6 ; Timer 2 Ein/Ausgang
t2ex bit p1.7 ; Trigger Timer 2
p2 port 432h ; Datenregister Port 2
ad8 bit p2.0 ; Datenbit 8/Adreßbit 12
ad9 bit p2.1 ; Datenbit 9/Adreßbit 13
ad10 bit p2.2 ; Datenbit 10/Adreßbit 14
ad11 bit p2.3 ; Datenbit 11/Adreßbit 15
ad12 bit p2.4 ; Datenbit 12/Adreßbit 16
ad13 bit p2.5 ; Datenbit 13/Adreßbit 17
ad14 bit p2.6 ; Datenbit 14/Adreßbit 18
ad15 bit p2.7 ; Datenbit 15/Adreßbit 19
p3 port 433h ; Datenregister Port 3
rxd0 bit p3.0 ; Empfangsleitung UART0
txd0 bit p3.1 ; Sendeleitung UART0
int0 bit p3.2 ; externer Interrupt 0
int1 bit p3.3 ; externer Interrupt 1
t0 bit p3.4 ; Timer 0 Ein/Ausgang
t1 bit p3.5 ; Timer 1 Ein/Ausgang
wr bit p3.6 ; Schreibimpuls D0-7
rd bit p3.7 ; Leseimpuls D0-15
p0cfga port 470h ; Konfigurationsbits A für Port 0
p1cfga port 471h ; Konfigurationsbits A für Port 1
p2cfga port 472h ; Konfigurationsbits A für Port 2
p3cfga port 473h ; Konfigurationsbits A für Port 3
p0cfgb port 4f0h ; Konfigurationsbits B für Port 0
p1cfgb port 4f1h ; Konfigurationsbits B für Port 1
p2cfgb port 4f2h ; Konfigurationsbits B für Port 2
p3cfgb port 4f3h ; Konfigurationsbits B für Port 3
;----------------------------------------------------------------------------
; Timer
tl0 port 450h ; Zählregister Timer 0
th0 port 451h
rtl0 port 454h ; Reload Timer 0
rth0 port 455h
tl1 port 452h ; Zählregister Timer 1
th1 port 453h
rtl1 port 456h ; Reload Timer 1
rth1 port 457h
tmod port 45ch ; Modusregister Timer 0/1
;t0_m0 bit tmod.0 ; Betriebsart Timer 0
;t0_m1 bit tmod.1
;ct_t0 bit tmod.2 ; Timer 0 als Timer oder Zähler
;t0_gate bit tmod.3 ; Freigabe Timer 0
;t1_m0 bit tmod.4 ; Betriebsart Timer 1
;t1_m1 bit tmod.5
;ct_t1 bit tmod.6 ; Timer 1 als Timer oder Zähler
;t1_gate bit tmod.7 ; Freigabe Timer 1
tcon port 410h ; Timer-Steuerregister 0/1
it0 bit tcon.0 ; Flanken/Zustandstriggerung Interrupt 0
ie0 bit tcon.1 ; Flankendetektor Interrupt 0
it1 bit tcon.2 ; Flanken/Zustandstriggerung Interrupt 1
ie1 bit tcon.3 ; Flankendetektor Interrupt 1
tr0 bit tcon.4 ; Timer 0 einschalten/stoppen
tf0 bit tcon.5 ; Überlauf Timer 0 ?
tr1 bit tcon.6 ; Timer 1 einschalten/stoppen
tf1 bit tcon.7 ; Überlauf Timer 1 ?
tstat port 411h ; Timer-Status 0/1
t0oe bit tstat.0 ; Takt von Timer 0 an T0 ausgeben
t1oe bit tstat.1 ; Takt von Timer 1 an T1 ausgeben
tl2 port 458h ; Zählregister Timer 2
th2 port 459h
t2capl port 45ah ; Fangwert Timer 2
t2caph port 45bh
t2mod port 419h ; Modus Timer 2
dcen bit t2mod.0 ; Zählrichtung Timer 2 auf/durch T2EX bestimmt
t2oe bit t2mod.1 ; Takt von Timer 2 an T2 ausgeben
tclk1 bit t2mod.4 ; UART1 benutzt Timer2 statt Timer 1 zum Senden
rclk1 bit t2mod.5 ; UART1 benutzt Timer2 statt Timer 1 zum Empfangen
t2con port 418h ; Timer-Steurregister 2
cp_rl2 bit t2con.0 ; Timer 2 Fang/Neuladen ?
ct_t2 bit t2con.1 ; Timer 2 als Timer oder Zähler
tr2 bit t2con.2 ; Timer 2 einschalten/stoppen
exen2 bit t2con.3 ; Capture/Reload über T2EX erlauben
tclk0 bit t2con.4 ; UART0 benutzt Timer2 statt Timer 1 zum Senden
rclk0 bit t2con.5 ; UART0 benutzt Timer2 statt Timer 1 zum Empfangen
exf2 bit t2con.6 ; Capture/Reload aufgetreten ?
tf2 bit t2con.7 ; Überlauf Timer 2 ?
;----------------------------------------------------------------------------
; Watchdog
wdcon port 41fh ; Konfiguration Watchdog
wdtof bit wdcon.1 ; Timeout aufgetreten ?
wdrun bit wdcon.2 ; Watchdog einschalten
pre0 bit wdcon.5 ; Vorteiler
pre1 bit wdcon.6
pre2 bit wdcon.7
wdl port 45fh ; Reload-Wert
wfeed1 port 45dh ; Rücksetzregister 1 (a5h)
wfeed2 port 45eh ; Rücksetzregister 2 (5ah)
;----------------------------------------------------------------------------
; serielle Ports
s0buf port 460h ; Datenregister UART0
s0addr port 461h ; Slave-Adresse UART0
s0aden port 462h ; Adreßmaske UART0
s0stat port 421h ; Status UART0
stint0 bit s0stat.0 ; Interruptfreigabe UART0
oe0 bit s0stat.1 ; Empfängerüberlauf UART0
br0 bit s0stat.2 ; Break auf UART0 empfangen?
fe0 bit s0stat.3 ; kein gültiges Stopbit auf UART0 ?
s0con port 420h ; Steuerung UART0
ri_0 bit s0con.0 ; Zeichen auf UART0 empfangen ?
ti_0 bit s0con.1 ; Zeichen auf UART0 verschickt ?
rb8_0 bit s0con.2 ; auf UART0 empfangenes, 9. Bit
tb8_0 bit s0con.3 ; auf UART0 verschicktes, 9. Bit
ren_0 bit s0con.4 ; Empfänger UART0 freigeben
sm2_0 bit s0con.5 ; Multiprozessormodus auf UART0 freigeben
sm1_0 bit s0con.6 ; Moduseinstellung UART0
sm0_0 bit s0con.7
s1stat port 421h ; Status UART1
stint1 bit s1stat.0 ; Interruptfreigabe UART1
oe1 bit s1stat.1 ; Empfängerüberlauf UART1
br1 bit s1stat.2 ; Break auf UART1 empfangen?
fe1 bit s1stat.3 ; kein gültiges Stopbit auf UART1 ?
s1con port 424h ; Steuerung UART1
ri_1 bit s1con.0 ; Zeichen auf UART1 empfangen ?
ti_1 bit s1con.1 ; Zeichen auf UART1 verschickt ?
rb8_1 bit s1con.2 ; auf UART1 empfangenes, 9. Bit
tb8_1 bit s1con.3 ; auf UART1 verschicktes, 9. Bit
ren_1 bit s1con.4 ; Empfänger UART1 freigeben
sm2_1 bit s1con.5 ; Multiprozessormodus auf UART1 freigeben
sm1_1 bit s1con.6 ; Moduseinstellung UART1
sm0_1 bit s1con.7
s1buf port 464h ; Datenregister UART1
s1addr port 465h ; Slave-Adresse UART1
s1aden port 466h ; Adreßmaske UART1
;----------------------------------------------------------------------------
; Vektoren
vec_reset label 0000h ; Resetadresse
vec_bkpt label 0004h ; Breakpoint-Befehl
vec_trace label 0008h ; Einzelschrittverfolgung
vec_stkover label 000ch ; Stapelüberlauf
vec_divzero label 0010h ; Division durch 0
vec_reti label 0014h ; Privilegverletzung (RETI im User-Mode)
vec_trap0 label 0040h ; TRAP 0
vec_trap1 label 0044h ; TRAP 1
vec_trap2 label 0048h ; TRAP 2
vec_trap3 label 004ch ; TRAP 3
vec_trap4 label 0050h ; TRAP 4
vec_trap5 label 0054h ; TRAP 5
vec_trap6 label 0058h ; TRAP 6
vec_trap7 label 005ch ; TRAP 7
vec_trap8 label 0060h ; TRAP 8
vec_trap9 label 0064h ; TRAP 9
vec_trap10 label 0068h ; TRAP 10
vec_trap11 label 006ch ; TRAP 11
vec_trap12 label 0070h ; TRAP 12
vec_trap13 label 0074h ; TRAP 13
vec_trap14 label 0078h ; TRAP 14
vec_trap15 label 007ch ; TRAP 15
vec_ie0 label 0080h ; externer Interrupt 0
vec_tf0 label 0084h ; Interrupt durch Timer 0
vec_ie1 label 0088h ; externer Interrupt 1
vec_tf1 label 008ch ; Interrupt durch Timer 1
vec_tf2 label 0090h ; Interrupt durch Timer 2
vec_ri0 label 00a0h ; Empfang auf UART0
vec_ti0 label 00a4h ; Sendung auf UART0
vec_ri1 label 00a8h ; Empfang auf UART1
vec_ti1 label 00ach ; Sendung auf UART1
vec_swr1 label 0100h ; Software-Interrupt 1
vec_swr2 label 0104h ; Software-Interrupt 2
vec_swr3 label 0108h ; Software-Interrupt 3
vec_swr4 label 010ch ; Software-Interrupt 4
vec_swr5 label 0110h ; Software-Interrupt 5
vec_swr6 label 0114h ; Software-Interrupt 6
vec_swr7 label 0118h ; Software-Interrupt 7
;----------------------------------------------------------------------------
; Speicheradressen
irom label 0 ; Beginn internes ROM
switch MOMCPUNAME ; Ende internes ROM
case "XAG3"
iromend label 7fffh ; XA-G3: 32K ROM
case "XAG2"
iromend label 3fffh ; XA-G2: 16K ROM
case "XAG1"
iromend label 1fffh ; XA-G1: 8K ROM
endcase
iram equ 0,data ; Beginn internes RAM
iramend equ 1ffh,data ; Ende internes RAM: immer 512 Byte
endif
restore ; wieder erlauben