140
Advanced Information
#==========================================
OVERLAY_0_OFFSET:
# main module.
.word 0x0 # offset from start of code
.half 0x0 # size in bytes (-1)
.half 0x1080 # destination
#==========================================
#============= NEWTONS OVERLAY ============
#==========================================
OVERLAY_1_OFFSET:
OVERLAY_NEWTON:
# Newton’s module laid over boot code.
.word 0x0 # offset from start of code
.half 0x0 # size in bytes (-1)
.half 0x1000 # destination
The size and offset of the microcode objects will be filled in by
buildtask
,
see Figure 6-2, “buildtask Operation,” on page 137.
Overlay Initialization Code
Before we load the overlay we must update the overlay table with the correct
DRAM address for the start of the code. This is usually done immediately at
the beginning of the program, since we require the
OSTask
structure which
has been copied into DMEM (and may need to be overwritten by the
program).
#####################################################
#
# code overlays:
#
# update table to be real DRAM address:
lw $5, OS_TASK_OFF_UCODE($1) # ucode base pointer
# PATCH NEWTON ONLY
lw $2, (OVERLAY_1_ OVERLAY_OFFSET)(zero)
add $2, $2, $5
sw $2, (OVERLAY_1_ OVERLAY_OFFSET)(zero)
Содержание Ultra64
Страница 2: ...2 ...
Страница 10: ...10 ...
Страница 12: ...12 Figure 6 2 buildtask Operation 137 ...
Страница 14: ...14 ...
Страница 80: ...80 Vector Unit Instructions vmadm dres_int dres_int vconst 3 vmadn dres_frac vconst vconst 0 ...
Страница 104: ...104 RSP Coprocessor 0 ...
Страница 150: ...150 Advanced Information ...
Страница 155: ...Revision 1 0 155 ...
Страница 248: ...248 Exceptions None ...
Страница 251: ...Revision 1 0 251 Exceptions None ...
Страница 254: ...254 Exceptions None ...
Страница 257: ...Revision 1 0 257 Exceptions None ...
Страница 293: ...Revision 1 0 293 Exceptions None ...
Страница 316: ...316 Exceptions None ...