;--- !!! ASSUMES 8000h-FFFFh is RAM !!! ---

;org 08000h

cmdbuf equ

08000h

 

pbuffr equ

08020h

 

;---------------------------------------------------

 

 

 

org

 

0

 

; RESET vector

RSTISR

 

proc

near

 

jmp

 

cc_UC, mon

; branch to monitor

RSTISR

 

endp

near

 

org

 

00008h

 

; NMI vector

NMISR

 

proc

near

 

jmp

 

cc_UC, mon

; branch to monitor

NMISR

 

endp

near

 

; --------------------------------------------------

 

 

 

org

01000h

 

 

; --------------------------------------------------

 

 

 

; --- monitor program ---

MON proc

 

near

 

 

mov

 

SYSCON, #0F800h ; #1111 1000

;0000 0000 b nop

mov

SYSCON, #0F800h ; #1111 1000

 

; 0000 0000 b

 

nop

 

 

; --- initialize CPS -------------------------------

 

 

;0xFA 0x00 0x10 0x80 ; jmps far 1000h ;

 

(jump to next1) ; far intersegment jump to update CPS

 

 

;next1:

 

 

dw 000FAh

 

next1:

dw 01010h

 

 

 

; --- initialize DPPx ------------------------------

 

mov

DPP0, #0

 

.

 

 

.

 

 

( no changes to the code here )

 

.

 

 

.

 

 

; --------------------------------------------------

;---

message

strings ---

; --------------------------------------------------

EVEN msggreet:

db 0ah, 0dh, ’SAB-C167 MONITOR IN EPROM > ’, 0

.

.

.

( no changes to the code here )

As mentioned, the address of register SYSCON is different (89h) in the C167. The instruction setting the SYSCON register is a move instruction. In machine code, the instruction takes four bytes: E6h, 89h, 00h, F8h, which may be hand-coded as,

-11-

Page 17
Image 17
RCA RMB-167 manual Rstisr