background image

Содержание Alto I

Страница 1: ...iginal description of the Alto Alto A Personal Computer System It includes a complete description of the Alto I and Alto II hardware and of the standard microcode I 24 II 3 Xerox Corporation 1978 1979...

Страница 2: ...Ethernet 7 1 Programming Characteristics 7 2 Ethernet Hardware 7 3 Ethernet Microcode 8 0 Control RAM ROM and S Registers 8 1 RAM Related Tasks 8 2 Processor Bus and ALU Interface 8 3 Microinstruction...

Страница 3: ...nstruction set for which emulation microcode is supplied in the microinstruction ROM is described in section 3 0 64K 16 bit words of 850ns error corrected semiconductor memory expandable to 256K 1K mi...

Страница 4: ...enby The members of EOD SPG who worked on the project are Doug Stewart Ron Cude Ron Freeman Jim Leung Tom Logan Bob Nishimura Abbey Silverstone Nathan Tobol and Ed Wakida This hardware manual has had...

Страница 5: ...IR The registers are connected to the memory and to an ALU with a 16 bit parallel bus For historical reasons the sand M registers are viewed as part of the microinstruction RAM and are described in s...

Страница 6: ...r I 5 RSEL 4 Constant 3 ROM BS 4 256 x 16 Processor Bus IR ALU Bus MAR Memory Address Bus II 16 Decode Control Figure 1 Processor DataPaths Monitor Transceiver I Drive I I I I I Display Ethernet Contr...

Страница 7: ...ntrols the sN74181 ALU This device can do a total of 48 arithmetic and logical operations most of which are relatively useless The 4 bit field is mapped by a PROM into the 16 most useful functions ALU...

Страница 8: ...ied by each field except BLOCK are interpreted identically by all tasks but the interpretation of the second eight depends on the active task The task independent functions are given below the task sp...

Страница 9: ...Main memory references are handled differently on Alto I and Alto II It is however possible to write most microcode so that it will operate correctly on both machines BASICS Memory is addressed by a...

Страница 10: ...e reference is a fetch of the word addressed by MAR During cycle 6 if BS 5 MD the odd word of the doubleword addressed by MAR is delivered If MD is referenced during cycle 6 it also must have been ref...

Страница 11: ...er MD Alto II MAR ANY REQUIRED OPTIONAL MD whatever immediately by another Alto II MAR ANY REQUIRED REQUIRED MD whatever SUSPEND MAR At Y Alto II MAR ANY REQUIRED USPEND SUSPEND whereever MD whereever...

Страница 12: ...o signal that a memory reference should go to the alternate bank the microinstruction which loads MAR must also contain F2 6 MD The microassembler will generate this conbination of functions for a cla...

Страница 13: ...K or the RAM to 3K see section 8 BRANCHING The microprocessor offers a limited branching capability which although somewhat cumbersome has proven adequate for chores undertaken by Alto microcode The b...

Страница 14: ...R A MPCRAM S 4 E 4 N K 16x12 T 2 10 I Address Modification Logic CRAM Address I _J I MPX I It Address Address Control Control Next Microinstruction RAM ROM Address Bus 1Kx32 1Kx32 or or 3Kx32 2Kx32 D...

Страница 15: ...rrently running task to remove its wakeup signal This function is not accomplished by the Alto microprocessor but rather by the individual device interfaces Task switches must occur only at times when...

Страница 16: ...ions are available for transferring contents of accumulators to and from memory registers and for performing arithmetic and logical operations among accumulators The notation AC n is often used to ref...

Страница 17: ...AFunc 0 NEG AFunc 1 MOV AFunc 2 INC AFunc 3 ADC AFunc 4 SUB AFunc 5 ADD AFunc 6 AND AFunc 7 AugmentedFunc 8 12 113 DISP x 0 Page 0 addressing X 1 PC relative addressing X 2 Base register AC2 X 3 Base...

Страница 18: ...specifies one of the four accumulators DestA C afor ACO DestAC 1 for Ac1 etc The MFunc field specifies one of two operations Mnemonic MFunc Action LDA STA 1 2 This operation loads an accumulator from...

Страница 19: ...he complement of c The function generator is controlled by the AFUnc field various values will be described below It takes two 16 bit numbers and a carry input and generates a 16 bit Result and a carr...

Страница 20: ...To From Memory D tAC es Accumulators Carry SrcAC DestAC Carry Generator 1 16 16 Function Generator 1 16 Shifter 1 16 Skip Sensor 1 16 Governed by NL Y I Figure 4 ee Instruction Execution...

Страница 21: ...enerator otherwise supply the specified value MOVE The function generator passes Ac srcAc and the carry bit unaffected INCREMENT The Result produced is AC SrcAC 1 the carry is complemented if Ac srcAc...

Страница 22: ...77B is the largest positive number and 100000B the largest negative The code generated by Bcpl looks like LDA 0 4 2 LDA 1 5 2 ADCL 1 0 SZC JMP falsePart JMP truePart Pick up a Pick up b Subtract and c...

Страница 23: ...he Alto s standard instruction set by implementing additional functions in software which is dispatched to via TRAPVEC or in microcode which is dispatched to via a RAM trap An appendix tabulates the s...

Страница 24: ...ord mask table be set up starting at MASKTAB 460B in page l rv MAsKTAB n 21 n 1 1 ns 15 The format of an Alto font designed for use with CONVERT is given below names of font files in this format conve...

Страница 25: ...d ACI DBA AND 17B Ac2 unchanged Ac3 the width of the character in bits If the character requires an extension CONVERT returns does not skip Ac3 contains the pseudo character code for the extension and...

Страница 26: ...hese instructions are potentially time consuming and keep their state in the AC S they are interruptable If an interrupt occurs the PC is decremented by one and the AC S contain the intermediate state...

Страница 27: ...of the line the interrupt latency can be as much as 1 bit time without errors JMPRAM 610l0B Jump to RAM see section 8 S for details RDRAM Switches the emulator task micro PC to another microinstructi...

Страница 28: ...This instruction writes the same memory location with two different values in quick succession rv AC3 ACO rv AC3 ACO xor Acl ACO ACO xor ACI 61024B Bit boundary block transfer An instruction for movi...

Страница 29: ...rupt BITBLT will finish its job This isthe reason w4y Aclmustbe zero when starting the instruction DEFINITIONS A bit map is a region of memory defined by BCA and BMR where BCA is the base core address...

Страница 30: ...ts is repeated The pattern is specified by four words GrayO through Gray3 These give the patterns to write into the destination block where called for one gray word per scan line The words will align...

Страница 31: ...40 cycles Total for a typical character 8 wide by 14 high approximately 1500 cycles These timings all in units of Alto microinstruction cycles and do include all memory wait time and do not include an...

Страница 32: ...etween instructions or during long instructions in which case the instruction s intennediate state is saved in the accumulators and PC is backed up so that the interrupted instruction is re executed w...

Страница 33: ...nested interrupts from higher priority channels where the priority is determined by software This is accomplished by turning off all lower priority channels and re enabling interrupts which were disab...

Страница 34: ...el s ACTIVE bit is 0 when viewed from non interrupt level u1 en u1 e channel is not in use The code below searches ACTIVE for the highest priority free channel It is careful not to assign the parity i...

Страница 35: ...ze the cost in additional microinstructions in the emulator main loop of the most common case where the interrupt system is enabled and no interrupts are pending When a bit appears in hTWW while the i...

Страница 36: ...s bus bits 0 5 6 and 7 into NEXT 6 9 which does a first level instruction dispatch The high order bits of IR cannot be read directly but the displacement field of IR 8 low order bits may be read with...

Страница 37: ...ts the SKIP flip flop if appropriate see section 3 1 The emulator microcode increments PC by 1 at the beginning of the next emulated instruction if SKIP is set using BUS SKIP ALUF 13B IR clears SKIP N...

Страница 38: ...ock wait 16 HTAB bits before displaying information from memory Bits 8 15 NWRDS Each scan line in this block is defined by NWRDS 16 bit words NWRDS must be even In order to skip space on the screen wi...

Страница 39: ...the buffer empty and clears the DWT block flip flop at the beginning of horizontal retrace for every scan line 4 3 Display Controller Microcode The display controller microcode is divided into three t...

Страница 40: ...a DCB The cursor may be removed from view in a number of ways The most efficient in terms of processing time is to set the x coordinate to 1 The cursor hardware consists of a 16 bit shift register whi...

Страница 41: ...Register f 1 word Buffer Video f Display Digital Shift Register Mixer Bit Clock Sync Sync _ Generator Buffer Control Figure 5 Display Control Pointer to next DeB I 1 I J Resol BkGnd Horizontal Tab Wor...

Страница 42: ...boards earlier Alto lIs have ADL keyboards which are somewhat larger and have columns of function keys on the left and right sides MICROS TCHKEYBOARD Bit KBDAD 177034B KBDAD 1 177035B KBDAD 2 177036B...

Страница 43: ...ILIN are depressed keys correspond to O s in memory UfILIN 8 UfILIN 9 UfILIN 10 UfILIN ll UfILIN 12 5 4 External Device Interface Key 0 left most Key 1 Key 2 Key 3 Key 4 right most Two memory location...

Страница 44: ...ion if present and moves the carriage to the left margin UTILOUT 2 Ribbon bit When this bit is 1 the ribbon is up in printing position when 0 it is down UTlLOUT 3 Daisy strobe bit Toggling this bit ca...

Страница 45: ...nverted Location UTILIN 177030B UfILIN I ONLINE UTILIN 2 NOPAP UfILIN 3 READY Location UTlLOUT 177016B UfILOUT O RFFED UfILOUT 1 CLEAR UTlLOUT 2 RLTER UfILOUT 3 PICLK UTlLOUT 4 PRINT UfILOUT 5 SPP UTl...

Страница 46: ...ficient to determine precisely where the parity error occurred The intent of the collection is to save values of the R registers most likely to be used as a source of memory addresses Alto II Address...

Страница 47: ...f the memory configuration switch This switch is located on the front of Alto 1 s and at the top of the backplane of the Alto II The current setting of the switch is reported in bit 6 of UTILIN locati...

Страница 48: ...K chips Le an Alto with extended memory this means BANK MAR O Subgroup chip positions 7 6 5 4 3 2 1 o 81 90 71 80 61 70 51 60 41 50 31 40 21 30 11 20 Nearest the edge connector The location of the bit...

Страница 49: ...thm above at 0 The syndromeMapping maps a 6 bit number range 0 to 63 into the number of the bad bit 0 to 38 or 1 if the syndrome is incorrect 0 1 2 3 4 5 6 7 0 38 37 36 1 35 1 18 1 syndrome values 0 t...

Страница 50: ...ler records three independent data blocks in each sector The first is two words long and is intended to include the address of the sector This block is called the Header block The second block is eigh...

Страница 51: ...rst word is a pointer to the next disk command block in this chain A 0 means that this is the last disk command block in the chain When the command is complete the disk controller stores its status in...

Страница 52: ...nate immediately after the correct cylinder position is reached before any data is transferred xOR ed with A 14 to yield hardware disk number SIGNIFICANCE Current sector number One can tell whether st...

Страница 53: ...ask Error Interrupt bit mask Reserved Disk address Disk Command Block KCB Header Action I Seek Seek Fail 521 522 523 524 Label Data Action Action I 0 Read 1 Check 2or3 Write Not Data Rdy Late Idle Poi...

Страница 54: ...BLK DeB pointer is set to 0 and KBLK 2 current disk address is set to 1 The effect of this is to cause the disk controller to abandon the current disk command chain and to forget where the disk arm is...

Страница 55: ...task specific Fl S four of which activate bus destination registers and the remaining three of which provide useful pulses and fourth by two task specific BS S The following tables describe the effect...

Страница 56: ...record number where MAP O 0 MAP l 2 MAP 2 3 MAP 3 1 NEXT NEXT OR if current command wants data transfer then 1 else 0 NEXT NEXT OR if disk not ready to accept command then 1 else 0 NEXT NEXT OR if fa...

Страница 57: ...is used to connect all types of Ethernet interfaces to the Ether so the transceiver design is not specific to the Alto and will not be described here The following sections describe the programming c...

Страница 58: ...the left byte and the status of the interface in the right byte The possible values of the microcode status byte EPLoc 0 7 and their meanings are EPLoc 0 7 0 EPLOc 0 7 1 EPLOc 0 7 2 Input done If the...

Страница 59: ...C The microcode never modifies the buffer count or pointer locations To keep the receiver listening as much of the time as possible if EICLoe is non zero when an output command is issued the microcode...

Страница 60: ...egister fills up again before the word has been transferred from the write register to the FIFO data has been lost and the nput gata late flip flop is set Ethernet transmitters accumulate a 16 bit grc...

Страница 61: ...buffer overrun 3 Load overflow 4 Zero length buffer 5 Reset by software I 6 Impossible microcode condition 7 377b Reserved Alto Processor Bus 1 Interface Buffer 16 16 words 16 II Output Shifter Write...

Страница 62: ...hardware says that the packet has ended or the buffer overflows in either case the input operation terminates and posts An output command SIO with AcO 14 1S 1 causes the microcode to compute a random...

Страница 63: ...FCT EBFCT ECBFCT EISFCT Fl 15B F2 10B F2 llB F2 12B F2 13B F2 14B F2 15B F2 16B Countdown Wakeup function Sets a flip flop in the interface that will cause a wakeup to the Ether task on the next tick...

Страница 64: ...erencing MD in the same microinstruction during the third or fourth cycle of a memory reference On Alto II the hardware automatically stops the clock for one cycle when necessary however due to a desi...

Страница 65: ...esponse to certain values of the FI and BS fields of the microinstruction Not all tasks are likely to be interested in these functions Moreover not all tasks will have the appropriate values of the F1...

Страница 66: ...control RAM word The ALU output during the microinstruction following the WRTRAM will be written into the low order half This protocol mates well with doubleword main memory reads 8 3 Microinstructio...

Страница 67: ...uting in RaMO RAMO RAMO ROMO In the 2K ROM configuration which includes 1K of RAM If currently and NEXT lJ 0 then else executing in go to NEXT in go to NEXT in RaMO RAMO ROMI RaMI RaMO RAMO RAMO RaMO...

Страница 68: ...e control RAM and theri transferring control to that microcode RDRAM 61011B Read from Control RAM Reads the control RAM or ROM halfword addressed by ACI into ACO The microcode is T ACl RDRAM L ALLONES...

Страница 69: ...ding of both Rand S registers are controlled by the BS field of the microinstruction Nevertheless there are considerable differences To begin with the M and S registers are active only when a RAM rela...

Страница 70: ...RAM What happens is that the last instruction suspends the system clock for one microinstruction and some Alto I memories cannot keep the memory data good for two microinstruction times so a parity e...

Страница 71: ...ge this compatibility the file AltoConstsx MU will be maintained the x corresponding to the latest AltoCodex containing definitions and constants for both Alto I and Alto II These can be logically inc...

Страница 72: ...the emulator S main loop in the ROM Otherwise control is passed to location PC AND 777B in RAM or ROMI The bank dispatched to is determined by the SWMODE rules described in section 8 4 Warning Some o...

Страница 73: ...efore if these memories contain appropriate contents it is not really necessary to go through the full disk or Ethernet bootstrap load sequence since the major purpose of those sequences is to initial...

Страница 74: ...mple such a piece of code is required in order to set the reset mode register By convention we reserve a utility area of RAMO for this purpose The normal procedure is to save the contents of this area...

Страница 75: ...and the controller has only 16 bits of buffering It has been determined empirically that task latency greater than 20 microinstruction times causes Diablo Model 44 disks to encounter data late errors...

Страница 76: ...8 7 CONSTANT 4 BUS 5 ALUCY 6 MD 7 CONSTANT 4 16 7 10 BUS T 11 BUS T l 12 BUS T l 13 BUS SKIP RAM o CPU KSEC KWD EfHER Related 14 BUS T 15 BUS AND NOT T 16 UNDEFINED 17 UNDEFINED 3 SLOCATION 4 SLOCATI...

Страница 77: ...ddress Std Microcode Disk status at start of current sector Std Microcode Disk address of latest disk command Std Microcode Sector interrupt bit mask Std Microcode Interval timer time Std Microcode Tr...

Страница 78: ...ame Section Emulator 3 KSEC 6 ETHER 7 MRT DWT 4 CURT 4 DHT 4 DVT 4 PART 5 5 KWD 6 APPENDIX D STANDARD TASKS Description Lowest priority Wakeup always true unused unused unused Disk sector task unused...

Страница 79: ...AM trap 72400 72777 555 RAM trap 73000 73377 556 RAM trap 73400 73777 557 RAM trap 74000 74377 560 RAM trap 74400 74777 561 RAM trap 75000 75377 562 RAM trap 75400 75777 563 RAM trap 76000 76377 564 R...

Страница 80: ...engineering number 0 microcode version 1 doesn t work reliably if some ram related task is running e g the Trident disk returns engineering number 2 microcode version O doesn t work reliably if some...

Страница 81: ...face Jto DLS input Alto DLS output 177701 177720 177737 177764 177773 EIALOC EIA interface output bit EIA interface input bit 177776 177776 177777 TV Camera Interface Redactron tape drive Digital Anal...

Страница 82: ...to II without additional hardware Contact SPG to get a cable PIN 216540 Tape Controller A two card processor bus interface to MDS and Kennedy tape drives It will handle 1600 bpi phase encoded tapes on...

Отзывы: