aboutsummaryrefslogtreecommitdiffstats
path: root/include/stddefxa.inc
diff options
context:
space:
mode:
Diffstat (limited to 'include/stddefxa.inc')
-rw-r--r--include/stddefxa.inc405
1 files changed, 405 insertions, 0 deletions
diff --git a/include/stddefxa.inc b/include/stddefxa.inc
new file mode 100644
index 0000000..e13dd10
--- /dev/null
+++ b/include/stddefxa.inc
@@ -0,0 +1,405 @@
+ 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
+
+