- -11
; --- !!! 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
dw 01010h
next1:
; --- 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,