Hardware manual

Name Opcode Address Function
CYCLE 60000 C AC0_AC0 lcy (if C ne 0 then C else AC1); smashes AC1
JSRII 64400 D AC3_PC+1; PC_rv (rv (PC+D))
JSRIS 65000 D AC3_PC+1; PC_rv (rv (AC2+D))
CONVERT 67000 D character scan conversion
DIR 61000 - disable interrupts
EIR 61001 - enable interrupts
BRI 61002 - PC_interruptedPC; EIR
RCLK 61003 - AC0_16 msb of clock (from realTimeClock); AC1_ 10 lsb of clock *
#100 + 6 bits of garbage; resolution is 38.08 us.
SIO 61004 - start I/O
BLT 61005 - Block transfer of -AC3 words; AC0=address of first source word-1;
AC1=address of
last destination word; AC0 and AC3 are updated
during the instruction
BLKS 61006 - Block store of -AC3 words; AC0=data to be stored; AC1=address
of
last destination word; AC3 is updated during the instruction
SIT 61007 - start interval timer. For an interrupt when the time is
timerInterruptTime, AC0 should be 1 when this instruction is
executed
JMPRAM 61010 - Emulator microcode PC_AC1 in control RAM
RDRAM 61011 - AC0_(if AC1[4] then RAM else ROM)!AC1 (left half if AC1[5],
right half otherwise)
WRTRAM 61012 - RAM!AC1_(AC0,AC3)
DIRS 61013 - * Disable interrupts and skip if interrupts were on
VERS 61014 - * AC0_((EngineeringNumber-1)*16 +BuildNumber)*256
+MicrocodeVersion
DREAD 61015 - ** AC0_rv(AC3); AC1_rv(AC3 xor 1)
DWRITE 61016 - ** rv(AC3)_AC0; rv(AC3+1)_AC1
DEXCH 61017 - ** t_rv(AC3); rv(AC3)_AC0; AC0_t; t_rv(AC3+1);
rv(AC3+1)_AC1; AC1_t
MUL 61020 - Same as NOVA MUL: AC0,1_AC2*AC1+AC0
DIV 61021 - Similar to NOVA DIV: AC1_AC0,1/AC2; AC0 has remainder.
DIV (unlike NOVA version) skips the next instruction if no overflow
occurs.
BITBLT 61024 - * character scan conversion of bit-map manipulation
Notes: Address: C=bits 12-15; D=bits 8-15; -=no address
variables in function descriptions are machine registers or page 1 locations
* indicates available only in "new" microcode (SIO leaves AC0[0]=0)
** indicates available only on Alto II
Table 2.1: New instructions in Alto emulator
(see Alto Hardware Manual for more details)
Alto Operating System May 5, 1980 30
For Xerox Internal Use Only -- December 15, 1980