Index: vlib/vbfill4.c
===================================================================
--- vlib/vbfill4.c	(revision 5c4721bf781b9a72025faf76b11122259e1bc0a4)
+++ vlib/vbfill4.c	(revision f537c488e3ca6b17dfadd4ee520aa9bb0c36d7ae)
@@ -27,12 +27,12 @@
 };
 
-void vbfill4(uint16_t *obj, int16_t obwidth, int16_t xmin, int16_t ymin, int16_t xmax, int16_t ymax, uint16_t color)
+void vbfill4(volatile uint16_t *obj, int16_t obwidth, int16_t xmin, int16_t ymin, int16_t xmax, int16_t ymax, uint16_t color)
 {
 	int16_t mw, nl, width;
 
-	register uint16_t *fwp, *wp;
-
-	register uint16_t lmask, rmask;
-	register int16_t i, j;
+	volatile uint16_t *fwp, *wp;
+
+	uint16_t lmask, rmask;
+	int16_t i, j;
 
 	fwp = obj + (int32_t)(xmin >> 2) + ((int32_t)ymin * obwidth);
Index: vlib/vbfill4.x
===================================================================
--- vlib/vbfill4.x	(revision 5c4721bf781b9a72025faf76b11122259e1bc0a4)
+++ vlib/vbfill4.x	(revision f537c488e3ca6b17dfadd4ee520aa9bb0c36d7ae)
@@ -15,3 +15,3 @@
 */
 
-extern	void		vbfill4(uint16_t *obj, int16_t obwidth, int16_t xmin, int16_t ymin, int16_t xmax, int16_t ymax, uint16_t color);
+extern	void		vbfill4(volatile uint16_t *obj, int16_t obwidth, int16_t xmin, int16_t ymin, int16_t xmax, int16_t ymax, uint16_t color);
Index: vlib/vclrs.c
===================================================================
--- vlib/vclrs.c	(revision 5c4721bf781b9a72025faf76b11122259e1bc0a4)
+++ vlib/vclrs.c	(revision f537c488e3ca6b17dfadd4ee520aa9bb0c36d7ae)
@@ -22,5 +22,5 @@
 */
 
-void vclrs(uint16_t *obase, int16_t row, int16_t col, int16_t nc, int16_t ch, uint16_t attr)
+void vclrs(volatile uint16_t *obase, int16_t row, int16_t col, int16_t nc, int16_t ch, uint16_t attr)
 {
 	while (nc--)
Index: vlib/vclrs.x
===================================================================
--- vlib/vclrs.x	(revision 5c4721bf781b9a72025faf76b11122259e1bc0a4)
+++ vlib/vclrs.x	(revision f537c488e3ca6b17dfadd4ee520aa9bb0c36d7ae)
@@ -15,3 +15,3 @@
 */
 
-extern	void		vclrs(uint16_t *obase, int16_t row, int16_t col, int16_t nc, int16_t ch, uint16_t attr);
+extern	void		vclrs(volatile uint16_t *obase, int16_t row, int16_t col, int16_t nc, int16_t ch, uint16_t attr);
Index: vlib/vmput.c
===================================================================
--- vlib/vmput.c	(revision 5c4721bf781b9a72025faf76b11122259e1bc0a4)
+++ vlib/vmput.c	(revision f537c488e3ca6b17dfadd4ee520aa9bb0c36d7ae)
@@ -16,5 +16,5 @@
 */
 
-void vmput(uint16_t *obase, int16_t row, int16_t col, int8_t *ms[], uint16_t ma)
+void vmput(volatile uint16_t *obase, int16_t row, int16_t col, int8_t *ms[], uint16_t ma)
 {
 	register int16_t c, tc, tr;
@@ -41,5 +41,5 @@
 */
 
-void vmputa(uint16_t *obase, int16_t row, int16_t col, int8_t *ms[], uint16_t *ma[])
+void vmputa(volatile uint16_t *obase, int16_t row, int16_t col, int8_t *ms[], uint16_t *ma[])
 {
 	register int16_t c, tc, tr;
Index: vlib/vmput.x
===================================================================
--- vlib/vmput.x	(revision 5c4721bf781b9a72025faf76b11122259e1bc0a4)
+++ vlib/vmput.x	(revision f537c488e3ca6b17dfadd4ee520aa9bb0c36d7ae)
@@ -15,4 +15,4 @@
 */
 
-extern	void		vmput(uint16_t *obase, int16_t row, int16_t col, int8_t *ms[], uint16_t ma);
-extern	void		vmputa(uint16_t *obase, int16_t row, int16_t col, int8_t *ms[], uint16_t *ma[]);
+extern	void		vmput(volatile uint16_t *obase, int16_t row, int16_t col, int8_t *ms[], uint16_t ma);
+extern	void		vmputa(volatile uint16_t *obase, int16_t row, int16_t col, int8_t *ms[], uint16_t *ma[]);
Index: vlib/vobjfns.c
===================================================================
--- vlib/vobjfns.c	(revision 5c4721bf781b9a72025faf76b11122259e1bc0a4)
+++ vlib/vobjfns.c	(revision f537c488e3ca6b17dfadd4ee520aa9bb0c36d7ae)
@@ -121,5 +121,5 @@
 */
 
-void SetObj(int16_t obj, int16_t type, int16_t bank, uint16_t *base, int16_t xpix, int16_t ypix, int16_t x0, int16_t y0, uint16_t flags, int16_t pri)
+void SetObj(int16_t obj, int16_t type, int16_t bank, volatile uint16_t *base, int16_t xpix, int16_t ypix, int16_t x0, int16_t y0, uint16_t flags, int16_t pri)
 {
 	register struct octent *op;
@@ -216,8 +216,8 @@
 */
 
-void CpyObj(uint16_t *from, uint16_t *to, int16_t w, int16_t h, int16_t sw)
-{
-	register uint16_t *tp;
-	register int16_t i, j;
+void CpyObj(volatile uint16_t *from, volatile uint16_t *to, int16_t w, int16_t h, int16_t sw)
+{
+	volatile uint16_t *tp;
+	int16_t i, j;
 
 	for (i = h; i--; ) {
Index: vlib/vobjfns.x
===================================================================
--- vlib/vobjfns.x	(revision 5c4721bf781b9a72025faf76b11122259e1bc0a4)
+++ vlib/vobjfns.x	(revision f537c488e3ca6b17dfadd4ee520aa9bb0c36d7ae)
@@ -25,6 +25,6 @@
 */
 
-extern	void		CpyObj(uint16_t *from, uint16_t *to, int16_t w, int16_t h, int16_t sw);
+extern	void		CpyObj(volatile uint16_t *from, volatile uint16_t *to, int16_t w, int16_t h, int16_t sw);
 extern	void		SelObj(int16_t obj);
-extern	void		SetObj(int16_t obj, int16_t type, int16_t bank, uint16_t *base, int16_t xpix, int16_t ypix, int16_t x0, int16_t y0, uint16_t flags, int16_t pri);
+extern	void		SetObj(int16_t obj, int16_t type, int16_t bank, volatile uint16_t *base, int16_t xpix, int16_t ypix, int16_t x0, int16_t y0, uint16_t flags, int16_t pri);
 extern	void		SetPri(int16_t obj, int16_t pri);
Index: vlib/vputs.c
===================================================================
--- vlib/vputs.c	(revision 5c4721bf781b9a72025faf76b11122259e1bc0a4)
+++ vlib/vputs.c	(revision f537c488e3ca6b17dfadd4ee520aa9bb0c36d7ae)
@@ -23,5 +23,5 @@
 */
 
-void vputs(uint16_t *obase, int16_t row, int16_t col, int8_t *str, uint16_t attr)
+void vputs(volatile uint16_t *obase, int16_t row, int16_t col, int8_t *str, uint16_t attr)
 {
 	int16_t	c;
@@ -50,5 +50,5 @@
 */
 
-void vputsa(uint16_t *obase, int16_t row, int16_t col, int8_t *str, uint16_t *attr)
+void vputsa(volatile uint16_t *obase, int16_t row, int16_t col, int8_t *str, uint16_t *attr)
 {
 	int16_t	c;
Index: vlib/vputs.x
===================================================================
--- vlib/vputs.x	(revision 5c4721bf781b9a72025faf76b11122259e1bc0a4)
+++ vlib/vputs.x	(revision f537c488e3ca6b17dfadd4ee520aa9bb0c36d7ae)
@@ -15,4 +15,4 @@
 */
 
-extern	void		vputs(uint16_t *obase, int16_t row, int16_t col, int8_t *str, uint16_t attr);
-extern	void		vputsa(uint16_t *obase, int16_t row, int16_t col, int8_t *str, uint16_t *attr);
+extern	void		vputs(volatile uint16_t *obase, int16_t row, int16_t col, int8_t *str, uint16_t attr);
+extern	void		vputsa(volatile uint16_t *obase, int16_t row, int16_t col, int8_t *str, uint16_t *attr);
Index: vlib/vputsv.c
===================================================================
--- vlib/vputsv.c	(revision 5c4721bf781b9a72025faf76b11122259e1bc0a4)
+++ vlib/vputsv.c	(revision f537c488e3ca6b17dfadd4ee520aa9bb0c36d7ae)
@@ -23,5 +23,5 @@
 */
 
-void vputsv(uint16_t *obase, int16_t row, int16_t col, int8_t *str, uint16_t attr, int16_t len)
+void vputsv(volatile uint16_t *obase, int16_t row, int16_t col, int8_t *str, uint16_t attr, int16_t len)
 {
 	int16_t	c;
@@ -51,5 +51,5 @@
 */
 
-void vputsav(uint16_t *obase, int16_t row, int16_t col, int8_t *str, uint16_t *attr, int16_t len)
+void vputsav(volatile uint16_t *obase, int16_t row, int16_t col, int8_t *str, uint16_t *attr, int16_t len)
 {
 	int16_t	c;
Index: vlib/vputsv.x
===================================================================
--- vlib/vputsv.x	(revision 5c4721bf781b9a72025faf76b11122259e1bc0a4)
+++ vlib/vputsv.x	(revision f537c488e3ca6b17dfadd4ee520aa9bb0c36d7ae)
@@ -15,4 +15,4 @@
 */
 
-extern	void		vputsav(uint16_t *obase, int16_t row, int16_t col, int8_t *str, uint16_t *attr, int16_t len);
-extern	void		vputsv(uint16_t *obase, int16_t row, int16_t col, int8_t *str, uint16_t attr, int16_t len);
+extern	void		vputsav(volatile uint16_t *obase, int16_t row, int16_t col, int8_t *str, uint16_t *attr, int16_t len);
+extern	void		vputsv(volatile uint16_t *obase, int16_t row, int16_t col, int8_t *str, uint16_t attr, int16_t len);
Index: vlib/vspray4.c
===================================================================
--- vlib/vspray4.c	(revision 5c4721bf781b9a72025faf76b11122259e1bc0a4)
+++ vlib/vspray4.c	(revision f537c488e3ca6b17dfadd4ee520aa9bb0c36d7ae)
@@ -25,5 +25,5 @@
 */
 
-void vspray4(uint16_t *vobj, int16_t vwid, int16_t fg, int8_t *ml[], int16_t vb, int16_t pitch)
+void vspray4(volatile uint16_t *vobj, int16_t vwid, int16_t fg, int8_t *ml[], int16_t vb, int16_t pitch)
 {
 	register int8_t *cp, *lp, c;
Index: vlib/vspray4.x
===================================================================
--- vlib/vspray4.x	(revision 5c4721bf781b9a72025faf76b11122259e1bc0a4)
+++ vlib/vspray4.x	(revision f537c488e3ca6b17dfadd4ee520aa9bb0c36d7ae)
@@ -15,3 +15,3 @@
 */
 
-extern	void		vspray4(uint16_t *vobj, int16_t vwid, int16_t fg, int8_t *ml[], int16_t vb, int16_t pitch);
+extern	void		vspray4(volatile uint16_t *vobj, int16_t vwid, int16_t fg, int8_t *ml[], int16_t vb, int16_t pitch);
Index: vlib/vtext.c
===================================================================
--- vlib/vtext.c	(revision 5c4721bf781b9a72025faf76b11122259e1bc0a4)
+++ vlib/vtext.c	(revision f537c488e3ca6b17dfadd4ee520aa9bb0c36d7ae)
@@ -12,7 +12,7 @@
 static uint16_t	msk[] = { 0xFF00, 0x00FF };
 
-void vtext(uint16_t *obj, int16_t nc, int16_t row, int16_t col, int8_t *ip)
+void vtext(volatile uint16_t *obj, int16_t nc, int16_t row, int16_t col, int8_t *ip)
 {
-	register uint16_t *op;
+	volatile uint16_t *op;
 
 	while (*ip) {
Index: vlib/vtext.x
===================================================================
--- vlib/vtext.x	(revision 5c4721bf781b9a72025faf76b11122259e1bc0a4)
+++ vlib/vtext.x	(revision f537c488e3ca6b17dfadd4ee520aa9bb0c36d7ae)
@@ -15,3 +15,3 @@
 */
 
-extern	void		vtext(uint16_t *obj, int16_t nc, int16_t row, int16_t col, int8_t *ip);
+extern	void		vtext(volatile uint16_t *obj, int16_t nc, int16_t row, int16_t col, int8_t *ip);
Index: vlib/vwputm.c
===================================================================
--- vlib/vwputm.c	(revision 5c4721bf781b9a72025faf76b11122259e1bc0a4)
+++ vlib/vwputm.c	(revision f537c488e3ca6b17dfadd4ee520aa9bb0c36d7ae)
@@ -24,5 +24,5 @@
 */
 
-void vwputm(uint16_t *obase, int16_t nw, int16_t fg, int16_t bg, int16_t row, int16_t col, int8_t *ml[])
+void vwputm(volatile uint16_t *obase, int16_t nw, int16_t fg, int16_t bg, int16_t row, int16_t col, int8_t *ml[])
 {
 	while (*ml) {
Index: vlib/vwputm.x
===================================================================
--- vlib/vwputm.x	(revision 5c4721bf781b9a72025faf76b11122259e1bc0a4)
+++ vlib/vwputm.x	(revision f537c488e3ca6b17dfadd4ee520aa9bb0c36d7ae)
@@ -15,3 +15,3 @@
 */
 
-extern	void		vwputm(uint16_t *obase, int16_t nw, int16_t fg, int16_t bg, int16_t row, int16_t col, int8_t *ml[]);
+extern	void		vwputm(volatile uint16_t *obase, int16_t nw, int16_t fg, int16_t bg, int16_t row, int16_t col, int8_t *ml[]);
