Add to MMU init: bypass cache in MMIO page
[pdp11-memory-test] / pdp11_register.h
index 1fab2e5..c3f0ce6 100644 (file)
 
 /* CPU */
 
 
 /* CPU */
 
-#define PSW    (*((volatile uint16_t *)0177776))
-#define PIRQ   (*((volatile uint16_t *)0177772))
-#define CPUERR (*((volatile uint16_t *)0177766))
+#define PSW      (*((volatile uint16_t *)0177776))
+#define PIRQ     (*((volatile uint16_t *)0177772))
+#define CPUERR   (*((volatile uint16_t *)0177766))
 
 /* MMU */
 
 
 /* MMU */
 
-#define MMR0   (*((volatile uint16_t *)0177572))
-#define MMR1   (*((volatile uint16_t *)0177574))
-#define MMR2   (*((volatile uint16_t *)0177576))
-#define MMR3   (*((volatile uint16_t *)0172516))
-
-#define UISDR0 (*((volatile uint16_t *)0177600))
-#define UISDR1 (*((volatile uint16_t *)0177602))
-#define UISDR2 (*((volatile uint16_t *)0177604))
-#define UISDR3 (*((volatile uint16_t *)0177606))
-#define UISDR4 (*((volatile uint16_t *)0177610))
-#define UISDR5 (*((volatile uint16_t *)0177612))
-#define UISDR6 (*((volatile uint16_t *)0177614))
-#define UISDR7 (*((volatile uint16_t *)0177616))
-
-#define UDSDR0 (*((volatile uint16_t *)0177620))
-#define UDSDR1 (*((volatile uint16_t *)0177622))
-#define UDSDR2 (*((volatile uint16_t *)0177624))
-#define UDSDR3 (*((volatile uint16_t *)0177626))
-#define UDSDR4 (*((volatile uint16_t *)0177630))
-#define UDSDR5 (*((volatile uint16_t *)0177632))
-#define UDSDR6 (*((volatile uint16_t *)0177634))
-#define UDSDR7 (*((volatile uint16_t *)0177636))
-
-#define UISAR0 (*((volatile uint16_t *)0177640))
-#define UISAR1 (*((volatile uint16_t *)0177642))
-#define UISAR2 (*((volatile uint16_t *)0177644))
-#define UISAR3 (*((volatile uint16_t *)0177646))
-#define UISAR4 (*((volatile uint16_t *)0177650))
-#define UISAR5 (*((volatile uint16_t *)0177652))
-#define UISAR6 (*((volatile uint16_t *)0177654))
-#define UISAR7 (*((volatile uint16_t *)0177656))
-
-#define UDSAR0 (*((volatile uint16_t *)0177660))
-#define UDSAR1 (*((volatile uint16_t *)0177662))
-#define UDSAR2 (*((volatile uint16_t *)0177664))
-#define UDSAR3 (*((volatile uint16_t *)0177666))
-#define UDSAR4 (*((volatile uint16_t *)0177670))
-#define UDSAR5 (*((volatile uint16_t *)0177672))
-#define UDSAR6 (*((volatile uint16_t *)0177674))
-#define UDSAR7 (*((volatile uint16_t *)0177676))
-
-#define SISDR0 (*((volatile uint16_t *)0172200))
-#define SISDR1 (*((volatile uint16_t *)0172202))
-#define SISDR2 (*((volatile uint16_t *)0172204))
-#define SISDR3 (*((volatile uint16_t *)0172206))
-#define SISDR4 (*((volatile uint16_t *)0172210))
-#define SISDR5 (*((volatile uint16_t *)0172212))
-#define SISDR6 (*((volatile uint16_t *)0172214))
-#define SISDR7 (*((volatile uint16_t *)0172216))
-
-#define SDSDR0 (*((volatile uint16_t *)0172220))
-#define SDSDR1 (*((volatile uint16_t *)0172222))
-#define SDSDR2 (*((volatile uint16_t *)0172224))
-#define SDSDR3 (*((volatile uint16_t *)0172226))
-#define SDSDR4 (*((volatile uint16_t *)0172230))
-#define SDSDR5 (*((volatile uint16_t *)0172232))
-#define SDSDR6 (*((volatile uint16_t *)0172234))
-#define SDSDR7 (*((volatile uint16_t *)0172236))
-
-#define SISAR0 (*((volatile uint16_t *)0172240))
-#define SISAR1 (*((volatile uint16_t *)0172242))
-#define SISAR2 (*((volatile uint16_t *)0172244))
-#define SISAR3 (*((volatile uint16_t *)0172246))
-#define SISAR4 (*((volatile uint16_t *)0172250))
-#define SISAR5 (*((volatile uint16_t *)0172252))
-#define SISAR6 (*((volatile uint16_t *)0172254))
-#define SISAR7 (*((volatile uint16_t *)0172256))
-
-#define SDSAR0 (*((volatile uint16_t *)0172260))
-#define SDSAR1 (*((volatile uint16_t *)0172262))
-#define SDSAR2 (*((volatile uint16_t *)0172264))
-#define SDSAR3 (*((volatile uint16_t *)0172266))
-#define SDSAR4 (*((volatile uint16_t *)0172270))
-#define SDSAR5 (*((volatile uint16_t *)0172272))
-#define SDSAR6 (*((volatile uint16_t *)0172274))
-#define SDSAR7 (*((volatile uint16_t *)0172276))
-
-#define KISDR0 (*((volatile uint16_t *)0172300))
-#define KISDR1 (*((volatile uint16_t *)0172302))
-#define KISDR2 (*((volatile uint16_t *)0172304))
-#define KISDR3 (*((volatile uint16_t *)0172306))
-#define KISDR4 (*((volatile uint16_t *)0172310))
-#define KISDR5 (*((volatile uint16_t *)0172312))
-#define KISDR6 (*((volatile uint16_t *)0172314))
-#define KISDR7 (*((volatile uint16_t *)0172316))
-
-#define KDSDR0 (*((volatile uint16_t *)0172320))
-#define KDSDR1 (*((volatile uint16_t *)0172322))
-#define KDSDR2 (*((volatile uint16_t *)0172324))
-#define KDSDR3 (*((volatile uint16_t *)0172326))
-#define KDSDR4 (*((volatile uint16_t *)0172330))
-#define KDSDR5 (*((volatile uint16_t *)0172332))
-#define KDSDR6 (*((volatile uint16_t *)0172334))
-#define KDSDR7 (*((volatile uint16_t *)0172336))
-
-
-#define KISAR0 (*((volatile uint16_t *)0172340))
-#define KISAR1 (*((volatile uint16_t *)0172342))
-#define KISAR2 (*((volatile uint16_t *)0172344))
-#define KISAR3 (*((volatile uint16_t *)0172346))
-#define KISAR4 (*((volatile uint16_t *)0172350))
-#define KISAR5 (*((volatile uint16_t *)0172352))
-#define KISAR6 (*((volatile uint16_t *)0172354))
-#define KISAR7 (*((volatile uint16_t *)0172356))
-
-#define KDSAR0 (*((volatile uint16_t *)0172360))
-#define KDSAR1 (*((volatile uint16_t *)0172362))
-#define KDSAR2 (*((volatile uint16_t *)0172364))
-#define KDSAR3 (*((volatile uint16_t *)0172366))
-#define KDSAR4 (*((volatile uint16_t *)0172370))
-#define KDSAR5 (*((volatile uint16_t *)0172372))
-#define KDSAR6 (*((volatile uint16_t *)0172374))
-#define KDSAR7 (*((volatile uint16_t *)0172376))
+#define MMR0     (*((volatile uint16_t *)0177572))
+#define MMR1     (*((volatile uint16_t *)0177574))
+#define MMR2     (*((volatile uint16_t *)0177576))
+#define MMR3     (*((volatile uint16_t *)0172516))
+
+#define UISDR0   (*((volatile uint16_t *)0177600))
+#define UISDR1   (*((volatile uint16_t *)0177602))
+#define UISDR2   (*((volatile uint16_t *)0177604))
+#define UISDR3   (*((volatile uint16_t *)0177606))
+#define UISDR4   (*((volatile uint16_t *)0177610))
+#define UISDR5   (*((volatile uint16_t *)0177612))
+#define UISDR6   (*((volatile uint16_t *)0177614))
+#define UISDR7   (*((volatile uint16_t *)0177616))
+
+#define UDSDR0   (*((volatile uint16_t *)0177620))
+#define UDSDR1   (*((volatile uint16_t *)0177622))
+#define UDSDR2   (*((volatile uint16_t *)0177624))
+#define UDSDR3   (*((volatile uint16_t *)0177626))
+#define UDSDR4   (*((volatile uint16_t *)0177630))
+#define UDSDR5   (*((volatile uint16_t *)0177632))
+#define UDSDR6   (*((volatile uint16_t *)0177634))
+#define UDSDR7   (*((volatile uint16_t *)0177636))
+
+#define UISAR0   (*((volatile uint16_t *)0177640))
+#define UISAR1   (*((volatile uint16_t *)0177642))
+#define UISAR2   (*((volatile uint16_t *)0177644))
+#define UISAR3   (*((volatile uint16_t *)0177646))
+#define UISAR4   (*((volatile uint16_t *)0177650))
+#define UISAR5   (*((volatile uint16_t *)0177652))
+#define UISAR6   (*((volatile uint16_t *)0177654))
+#define UISAR7   (*((volatile uint16_t *)0177656))
+
+#define UDSAR0   (*((volatile uint16_t *)0177660))
+#define UDSAR1   (*((volatile uint16_t *)0177662))
+#define UDSAR2   (*((volatile uint16_t *)0177664))
+#define UDSAR3   (*((volatile uint16_t *)0177666))
+#define UDSAR4   (*((volatile uint16_t *)0177670))
+#define UDSAR5   (*((volatile uint16_t *)0177672))
+#define UDSAR6   (*((volatile uint16_t *)0177674))
+#define UDSAR7   (*((volatile uint16_t *)0177676))
+
+#define SISDR0   (*((volatile uint16_t *)0172200))
+#define SISDR1   (*((volatile uint16_t *)0172202))
+#define SISDR2   (*((volatile uint16_t *)0172204))
+#define SISDR3   (*((volatile uint16_t *)0172206))
+#define SISDR4   (*((volatile uint16_t *)0172210))
+#define SISDR5   (*((volatile uint16_t *)0172212))
+#define SISDR6   (*((volatile uint16_t *)0172214))
+#define SISDR7   (*((volatile uint16_t *)0172216))
+
+#define SDSDR0   (*((volatile uint16_t *)0172220))
+#define SDSDR1   (*((volatile uint16_t *)0172222))
+#define SDSDR2   (*((volatile uint16_t *)0172224))
+#define SDSDR3   (*((volatile uint16_t *)0172226))
+#define SDSDR4   (*((volatile uint16_t *)0172230))
+#define SDSDR5   (*((volatile uint16_t *)0172232))
+#define SDSDR6   (*((volatile uint16_t *)0172234))
+#define SDSDR7   (*((volatile uint16_t *)0172236))
+
+#define SISAR0   (*((volatile uint16_t *)0172240))
+#define SISAR1   (*((volatile uint16_t *)0172242))
+#define SISAR2   (*((volatile uint16_t *)0172244))
+#define SISAR3   (*((volatile uint16_t *)0172246))
+#define SISAR4   (*((volatile uint16_t *)0172250))
+#define SISAR5   (*((volatile uint16_t *)0172252))
+#define SISAR6   (*((volatile uint16_t *)0172254))
+#define SISAR7   (*((volatile uint16_t *)0172256))
+
+#define SDSAR0   (*((volatile uint16_t *)0172260))
+#define SDSAR1   (*((volatile uint16_t *)0172262))
+#define SDSAR2   (*((volatile uint16_t *)0172264))
+#define SDSAR3   (*((volatile uint16_t *)0172266))
+#define SDSAR4   (*((volatile uint16_t *)0172270))
+#define SDSAR5   (*((volatile uint16_t *)0172272))
+#define SDSAR6   (*((volatile uint16_t *)0172274))
+#define SDSAR7   (*((volatile uint16_t *)0172276))
+
+#define KISDR0   (*((volatile uint16_t *)0172300))
+#define KISDR1   (*((volatile uint16_t *)0172302))
+#define KISDR2   (*((volatile uint16_t *)0172304))
+#define KISDR3   (*((volatile uint16_t *)0172306))
+#define KISDR4   (*((volatile uint16_t *)0172310))
+#define KISDR5   (*((volatile uint16_t *)0172312))
+#define KISDR6   (*((volatile uint16_t *)0172314))
+#define KISDR7   (*((volatile uint16_t *)0172316))
+
+#define KDSDR0   (*((volatile uint16_t *)0172320))
+#define KDSDR1   (*((volatile uint16_t *)0172322))
+#define KDSDR2   (*((volatile uint16_t *)0172324))
+#define KDSDR3   (*((volatile uint16_t *)0172326))
+#define KDSDR4   (*((volatile uint16_t *)0172330))
+#define KDSDR5   (*((volatile uint16_t *)0172332))
+#define KDSDR6   (*((volatile uint16_t *)0172334))
+#define KDSDR7   (*((volatile uint16_t *)0172336))
+
+#define KISAR0   (*((volatile uint16_t *)0172340))
+#define KISAR1   (*((volatile uint16_t *)0172342))
+#define KISAR2   (*((volatile uint16_t *)0172344))
+#define KISAR3   (*((volatile uint16_t *)0172346))
+#define KISAR4   (*((volatile uint16_t *)0172350))
+#define KISAR5   (*((volatile uint16_t *)0172352))
+#define KISAR6   (*((volatile uint16_t *)0172354))
+#define KISAR7   (*((volatile uint16_t *)0172356))
+
+#define KDSAR0   (*((volatile uint16_t *)0172360))
+#define KDSAR1   (*((volatile uint16_t *)0172362))
+#define KDSAR2   (*((volatile uint16_t *)0172364))
+#define KDSAR3   (*((volatile uint16_t *)0172366))
+#define KDSAR4   (*((volatile uint16_t *)0172370))
+#define KDSAR5   (*((volatile uint16_t *)0172372))
+#define KDSAR6   (*((volatile uint16_t *)0172374))
+#define KDSAR7   (*((volatile uint16_t *)0172376))
+
+/* SLU */
+
+#define CONSRCSR (*((volatile uint16_t *)0177560))
+#define CONSRBUF (*((volatile uint16_t *)0177562))
+#define CONSXCSR (*((volatile uint16_t *)0177564))
+#define CONSXBUF (*((volatile uint16_t *)0177566))
+
+#define SLU0RCSR (*((volatile uint16_t *)0176500))
+#define SLU0RBUF (*((volatile uint16_t *)0176502))
+#define SLU0XCSR (*((volatile uint16_t *)0176504))
+#define SLU0XBUF (*((volatile uint16_t *)0176506))
+
+#define SLU1RCSR (*((volatile uint16_t *)0176510))
+#define SLU1RBUF (*((volatile uint16_t *)0176512))
+#define SLU1XCSR (*((volatile uint16_t *)0176514))
+#define SLU1XBUF (*((volatile uint16_t *)0176516))
+
+#define SLU2RCSR (*((volatile uint16_t *)0176520))
+#define SLU2RBUF (*((volatile uint16_t *)0176522))
+#define SLU2XCSR (*((volatile uint16_t *)0176524))
+#define SLU2XBUF (*((volatile uint16_t *)0176524))
+
+#define SLU3RCSR (*((volatile uint16_t *)0176530))
+#define SLU3RBUF (*((volatile uint16_t *)0176532))
+#define SLU3XCSR (*((volatile uint16_t *)0176534))
+#define SLU3XBUF (*((volatile uint16_t *)0176536))
 
 
 /*
 
 
 /*
  * defined as "(017),(2)".
  */
 
  * defined as "(017),(2)".
  */
 
+/* CPU */
+
+
+/* MMU */
 #define MMR0_AB_NONRES (01),(15)
 #define MMR0_AB_PAGLEN (01),(14)
 #define MMR0_AB_RO     (01),(13)
 #define MMR0_AB_NONRES (01),(15)
 #define MMR0_AB_PAGLEN (01),(14)
 #define MMR0_AB_RO     (01),(13)
 #define PDR_EXPANDDIR  (01),(3)
 #define PDR_ACCESSCTRL (03),(1)
 
 #define PDR_EXPANDDIR  (01),(3)
 #define PDR_ACCESSCTRL (03),(1)
 
+/* SLU */
+
+#define SLURCSR_RCVRDY (01),(7)
+#define SLURCSR_RCVINT (01),(6)
+#define SLURCSR_RCVEN  (01),(0)
+
+#define SLURBUF_ERROR  (01),(15)
+#define SLURBUF_EOVRUN (01),(14)
+#define SLURBUF_EFRAME (01),(13)
+#define SLURBUF_EPARIT (01),(12)
+#define SLURBUF_BUFFER (0377),(0)
+
+#define SLUXCSR_XMTBRK (01),(0)
+#define SLUXCSR_XMTINT (01),(6)
+#define SLUXCSR_XMTRDY (01),(7)
+
+#define SLUXBUF_BUFFER (0377),(0)
+
 
 #endif // SGK_PDP11_REGISTER_H
 
 #endif // SGK_PDP11_REGISTER_H