User`s guide

ROM Partitioning
B.1 Firmware EPROM Layout
B.1.2.2 CP$MSG_OUT_NOLF_R4
This routine outputs a message to the console. The message is specified either
by a message code or a string descriptor. The routine distinguishes between
message codes and descriptors by requiring that any descriptor be located
outside of the first page of memory. Hence, message codes are restricted to
values between 0 and 511.
Registers R0,R1,R2,R3 and R4 are modified by this routine, all others are
preserved.
;---------------------------------------------------------------
; Usage with message code:
movzbl #console_message_code,r0 ; Specify message code.
jsb @#CP$MSG_OUT_NOLF_R4 ; Call routine.
;---------------------------------------------------------------
; Usage with a message descriptor (position dependent).
movaq 5$,r0 ; Specify address of desc.
jsb @#CP$MSG_OUT_NOLF_R4 ; Call routine.
.
.
5$: .ascid /This is a message/ ; Message with descriptor.
;---------------------------------------------------------------
; Usage with a message descriptor (position independent).
pushab 5$ ; Generate message desc.
pushl #10$-5$ ; on stack.
movl sp,r0 ; Pass desc. addr. in R0.
jsb @#CP$MSG_OUT_NOLF_R4 ; Call routine.
clrq (sp)+ ; Purge desc. from stack.
.
.
5$: .ascii /This is a message/ ; Message.
10$: ;
;---------------------------------------------------------------
B.1.2.3 CP$READ_WTH_PRMPT_R4
This routine outputs a prompt message and then inputs a character string
from the console. When the input is accepted, DELETE, CONTROL-U and
CONTROL-R functions are supported.
As with CP$MSG_OUT_NOLF_R4, either a message code or the address of a
string descriptor is passed in R0 to specify the prompt string. A value of zero
results in no prompt. A time-out value in 10-millisecond ticks may be passed
in R1. If R1 is zero, the prompt will not timeout.
B–6 ROM Partitioning