Text preview for : Mesab.mu_Sep78.pdf part of xerox Mesab.mu Sep78 xerox mesa 4.0_1978 listing Mesa_4_Microcode Mesab.mu_Sep78.pdf



Back to : Mesab.mu_Sep78.pdf | Home

Mesab.mu 2-Sep-78 17:21:54 Page 1


0 ________________________________________________________________ _

,
; Mesab.Mu - Registers, miscellaneous symbols and constants
; Last modified by Levin - July 5, 1978 9:08 AM
,
0 ______ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ___________ _




,
0 ______ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ___________ _




; Get standard Alto Definitions
,
0 ______ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ___________ _




HAltoconsts23.mu;
Mesab.mu 2-Sep-78 17:21:54 Page 2



,
.----------------------------------------------.~----- -------------
; R memories used by code in ROMO, correct to AltoCode23.Mu
;-----------------------------------------------------------------
$NWW $R4;
$CBA $R22;
$AECL $R23;
$SLC $R24;
$MTEMP $R25;
$HTAB $R26;
$YPOS $R27;
$DWA $R30;
$CURX $R20;
$CURDATA $R21;
$R37 $R37;
$ECNTR $R12; COUNT OF WORDS YET TO BE PROCESSED IN MAIN LOOP
$EPNTR $R13; POINTS AT WORD BEFORE THE WORD NEXT TO BE PROCESSED
$CLOCKTEMP $R11;
$SAD $R5;
$PC $R6; USED BY MEMORY INIT
$ACO $R3; AC'S ARE BACKWARDS BECAUSE THE HARDWARE SUPPLIES
, COMPLEMENT OF ADDRESS WHEN ADDRESSING FROM IR
$AC1 $R2;
$AC2 $Rl;
$AC3 $RO;
$XREG $R7;
$CYRET $R5; Shares space with SAD.
$CYCOUT $R7; Shares space with XREG.
$XH $Rl0;
$DWAX $R35;
$MASK $R36;
$MASK1 $RO;
$YMUL $R2; HAS TO BE AN R-REG FOR SHIFTS
$RETN $R2;
$SKEW $R3;
$TEMP $R5;
$WIDTH $R7;
$PLIER $R7; HAS TO BE AN R-REG FOR SHIFTS
$DESTY $Rl0;
$WORD2 $Rl0;
$STARTBITSM1 $R35;
$SWA $R36;
$DESTX $R36;
$LREG $R40; HAS TO BE R40 (COpy OF L-REG)
$NLINES $R41;
$RASTl $R42;
$SRCX $R43;
$SKMSK $R43;
$SRCY $R44;
$RAST2 $R44;
$CONST $R45;
$TWICE $R45;
$HCNT $R46;
$VINC $R46;
$HINC $R47;
$NWORDS $R50;
$MASK2 $R51; WAS $R46;
$DCBR $R34;
$KNMAR $R33;
$CKSUMR $R32;
$KWDCT $R31;
$KNMARW $R33;
$CKSUMRW $R32;
$KWDCTW $R31;
$AudioWdCt $R71;
$AudioData $R72;
Mesab.mu 2-Sep-78 17:21:54 Page 3




"-----------------------------------------------------------------
,
; Registers used by Mesa Emulator
,
0 ______ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ___________ _




; R registers
$temp $R35; Temporary (smashed by BITBLT)
$temp2 $R36; Temporary (smashed by BITBLT)
$mpc $R15; R register holds Mesa PC (points at word last read)
$stkp $R16; stack pointer [0-10] 0 empty, 10 full
$XTSreg $R17; xfer' trap state
Registers shared by Nova and Mesa emulators
Nova ACs are set explicitly by Mesa process opcodes and for RaMO calls
Other R-registers smashed by BITBLT and other ROMO subroutines
$brkbyte $RO; (AC3) bytecode to execute after a breakpoint
Warningl brkbyte must be reset to 0 after ROM callsl
, (see BITBLT)
$mx $R1; (AC2) x register for XFER
, Warning! smashed by BITBLT and MUL/DIV/LDIV
$saveret $R2; (AC1) R-temporary for return indices and values
$newfield $R3; (ACO) new field bits for WF and friends
Warningl must be R-register; assumed safe across CYCLE
$count $R5; scratch R register used for counting
$taskhole $R7; pigeonhole for saving things across TASKs
, Warningl smashed by all ROM calls!
Sib $R10; instruction byte, 0 if none (O"byte)
, Warningl smashed by BITBLT
$clockreg $R37; low-order bits of real-time clock
; S registers, can't shift into them, BUS not zero while storing.
$my $R51; y register for XFER
$lp $R52; local pointer
$gp $R53; global pOinter
$cp $R54; code pointer
$ATPreg $R55; allocation trap parameter
$OTPreg $R56; other trap parameter
$XTPreg $R57; xfer trap parameter
$wdc $R70; wakeup disable counter
; Mesa evaluation stack
$stkO $R60; stack (bottom)
$stkl $R61; stack
$stk2 $R62; stack
$stk3 $R63; stack
$stk4 $R64; stack
$stk5 $R65; stack
$stk6 $R66; stack
$stk7 $R67; stack (top)
; Miscellaneous S registers
$mask $R41 ; used by string instructions, among others
$unusedl $R42; not safe across call to BITBLT
$unused2 $R43; not safe across call to BITBLT
$alpha $R44; alpha byte (among other things)
$index $R45; frame size index (among other things)
Sentry $R46; allocation table entry address (among other things)
$frame $R47; allocated frame pointer (among other things)
$righthalf $R41; right 4 bits of alpha or beta
$lefthalf $R45; left 4 bits of alpha or beta
$unused3 $R50; not safe across call to BITBLT
Mesab.mu 2-Sep-78 17:21:54 Page 4



0 ________________________________________________________________ _

,
; Mnemonic constants for subroutine return indices used by BUS dispatch.
,
0 ______ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ___________ _




$retO $LO,12000,100; zero is always special
$ret1 $1;
$ret2 $2;
$ret3 $3;
$ret4 $4;
$ret5 $5;
$ret6 $6;
$ret7 $7;
$retlO $10;
$retll $11;
$ret12 $12;
$retl3 $13;
$ret14 $14;
$ret15 $15;
$ret16 $16;
$retl7 $17;
$ret20 $20;
$ret21 $21;
$ret22 $22;
$ret23 $23;
$ret24 $24;
$ret25 $25;
$ret26 $26;
$ret27 $27;
$ret30 $30;
$ret31 $31 ;
$ret37 $37;
Mesab.l11u 2-Sep-78 17:21:54 Page 5



0 __________