|
DataMuseum.dkPresents historical artifacts from the history of: CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 148608 (0x24480) Types: TextFile Names: »D168«
└─⟦4b76feb82⟧ Bits:30008865 Diskette med tekster der formodes at være 31-D-163…174 └─⟦this⟧ »D168«
RC3741: 300 lpm Band Printer. RC3742: 600 lpm Band Printer. RC3743: 900 lpm Band Printer. . QUALITY PRINTER DESIGNED FOR LONG-LIFE . ENDLESS BAND CONTAINING CHARACTER SET EASILY EXCHANGED . NUMBER OF DIFFERENT CHARACTER SETS . BUILT-IN FAULT DIAGNOSTICS . LOW-NOICE OPERATION \f G_E_N_E_R_A_L_ The RC3741/42/43 band printers represent unsurpassed printout quality, combining high-speed performances and high reliability in operation. The printers are designed and manufactured to provide precise printing over a long life. Initial cost is low - and so is the maintenance cost. The user>s choice in character set options is manyfold. C_H_A_R_A_C_T_E_R_I_S_T_I_C_S_ The character set is contained on (struck on) as an endless, horizontally running band. Changing print bands is simple - all adjustments are automatically performed by the printer. A number of print bands (64 or 96 characters per character set and differ- ent national alphabets) are available as standard. Further options can be provided on request. Compressed character spacing (15 cpi) can be obtained on the smaller models thereby reducing paper use by 40 percent. Standard character spacing is 10 char- acters per inch; line length 132 characters. Line spacing is 6 or 8 lines per inch. Paper is controlled by a 12-channel VFU, multi- copy forms can be used and even on six-part forms a crisp, clean printing is evident. The printer is easily attended by the operator and all the prin- ter operations are constantly monitored by the built-in fault diagnostics. A test print facility enables a quick check of the printer condition. The modular design of the printer logics per- mits field replacement if required. The acoustic cabinet provides quite operation. In addition, the print band motor is turned off automatically after 30 seconds without printing. \f S_P_E_C_I_F_I_C_A_T_I_O_N_S_ RC3741 RC3742 RC3743 No of characters in character set: 64 96 64 96 64 96 Print speed, lpm, nominal value: 300 222 600 440 900 660 Compressed char.- space option: YES YES YES YES NO NO Character spacing, char./inch: 10 or 15 10 or 15 10 Line spacing: 6 or 8 lines per inch Line length: 132 characters per line Standard features: 12-channel VFU, fault diagnostics, test print, dual line spacing pitch, towel ribbon, paper basket, castors. Paper width: 4 to 16 3/4 inches Paper type: Multicopy, up to 6 copies Power requirements: 220V AC, 1000W 220V AC, 1300W 220V AC, 1100W Temperature, amb. 10-40C (50-104 F) Humidity, rel.: 20-80 %, non-condensing Heat Dissipation: 3600 kJ/t 4700 kJ/t 3950 kJ/t (2410 BTU/h) (4435 BTU/h) (3746 Sound Level: 67 dB (A) Mounting: Free-standing (interfaces with system through 12 m signal cable) \f D_I_M_E_N_S_I_O_N_S_ 43 Height: 113 cm (44.5 in) Width: 86.4 cm (34 in) Depth: 61 cm (24 in) Weight: 136 kg(300 lb) 136 kg(300 lb) 159 kg(350 lb) RCSL No 42-i1565 \f RC3741: 300 lpm Båndprinter RC3742: 600 lpm Båndprinter RC3743: 900 lpm Båndprinter . KVALITETSPRINTER . ENDELØSE BÅND MED TEGNSÆT SKIFTES NEMT . INDBYGGET FEJLFINDINGSUDSTYR . STØJSVAG DRIFT \f G_E_N_E_R_E_L_T_ RC3741/42/43 båndprinterne tilbyder en uovertruffen skriftkvali- tet kombineret med en høj ydelse og en stor driftssikkerhed. Kon- struktion og fremstilling af printerne er foregået specielt med henblik på lang levetid og præsis udskrivning. Både investering og driftsomkostninger er små. Brugernes valgmuligheder mellem forskellige tegnsæt er mangfoldige. K_A_R_A_K_T_E_R_I_S_T_I_K_A_ Tegnsættet er præget på et endeløst, vandret løbende bånd. Det er en enkel sag at skifte printbånd - printeren udfører selv alle nødvendige justeringer. Et stort antal printbånd tilbydes som standard (64 eller 96 tegn per tegnsæt, forskellige nationale alfabeter). Yderligere options kan tilbydes efter forespørgsel. På de mindre modeller kan der leveres printbånd med større tegn- tæthed (15 tegn pr. tomme) - derved kan papirforbruget reduceres med indtil 40 procent. Standard tegntæthed er 10 tegn pr. tomme; linielængden 132 tegn. Linietætheden er 6 eller 8 linier pr. tom- me. Papiret styres af en 12-kanal VFU, flerlagspapir kan benyt- tes - og selv på 6-lags kopier opnås et klart, rent skriftbil- lede. Printeren betjenes nemt af operatøren og alle printerens funk- tioner overvåges løbende af det indbyggede fejlfindingsudstyr. En printer-selvtest gør det muligt, hurtigt og nemt at efterprøve printerens funktioner. Printerstyringens modulære design tillader udskiftning på stedet, hvis det skulle blive nødvendigt at erstatte en komponent. Printerkabinettet er bygget med støjsvag drift for øje - desuden afbrydes motoren til printbåndet efter 30 sekunder uden udskriftsaktivitet. \f S_P_E_C_I_F_I_K_A_T_I_O_N_E_R_RC3741 RC3742 RC3743 Tegnsæt, antal tegn: 64 96 64 96 64 96 Skrivehastighed, lpm, nominel: 300 222 600 440 900 660 Reduceret tegnafstand, option: JA JA JA JA NEJ NEJ Tegntæthed, tegn/tomme: 10 eller 15 10 eller 15 10 Linietæthed: 6 eller 8 linier pr. tomme Linielængde: 132 tegn per linie Standard udstyr: 12-kanal VFU, fejlfindningsudstyr, selvtest, to linietætheder, bred farvebåndsrulle, papirkurv, hjul. Papirbredde: 4 til 16 3/4 tommer Papirtype: multi-copy, indtil 6 kopier Strømforsyning: 220V AC, 1000W 220V AC, 1300W 220V AC, 1100W Temperatur, omg. 10-40 C Luftfugtighed, relativ: 20-80%, ikke kondenserende Varmeafgivelse: 3600 kJ/t 4700 kJ/t 3950 kJ/t Lydniveau: 67 dB (A) Montering: fritstående (tilslutning til system via 12 m kabel) \f D_I_M_E_N_S_I_O_N_E_R_ Højde: 113 cm Bredde: 86,4 cm Dybde: 61 cm Vægt: 136 kg 136 kg 159 kg RCSL 42-i 1566 \f i T_A_B_L_E_ _O_F_ _C_O_N_T_E_N_T_S_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _P_A_G_E_ 1. INTRODUCTION .......................................... 1 2. DESIGN OBJECTIVES ..................................... 3 2.1 Word Length ...................................... 3 2.2 Storage Addressing ............................... 3 2.3 Register Structure ............................... 4 2.4 Instruction Format ............................... 4 2.5 Input/Output Structure ........................... 5 3. COMPUTER ORGANIZATION ................................. 7 3.1 Data Formats ..................................... 7 3.2 Number Representation ............................ 7 3.3 Working Registers ................................ 8 3.4 Interruption System .............................. 9 3.5 Input/Output ..................................... 12 3.6 Basic Instruction Formats ........................ 16 4. ARITHMETIC AND LOGICAL INSTRUCTIONS ................... 17 4.1 Instruction Format 1 ............................. 17 4.2 Address and Operand Calculation .................. 18 4.3 Instruction List ................................. 20 5. BRANCH AND CONTINUE INSTRUCTIONS ...................... 25 5.1 Instruction Format 2 ............................. 25 5.2 Address and Operand Calculation .................. 26 5.3 Instruction List ................................. 26 6. SHIFT-ROTATE INSTRUCTIONS ............................. 32 6.1 Format 3 for Shift-Rotate Instructions ........... 32 6.2 Fetch Algorithm for Format 3 ..................... 32 6.3 Instruction List ................................. 33 7. INTERLEVEL INSTRUCTIONS ............................... 35 7.1 Format 3 for Interlevel Instructions ............. 35 7.2 Instruction List ................................. 36 \f ii T_A_B_L_E_ _O_F_ _C_O_N_T_E_N_T_S_ _(_c_o_n_t_i_n_u_e_d_)_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _P_A_G_E_ 8. INPUT/OUTPUT INSTRUCTIONS ............................. 37 8.1 Format 3 for Input/Output Instructions ........... 37 8.2 Instruction List ................................. 38 9. INSTRUCTION SET ....................................... 41 9.1 Arithmetic and Logical Instructions .............. 41 9.2 Branch and Continue Instructions ................. 42 9.3 Shift-Rotate Instructions ........................ 43 9.4 Interlevel Instructions .......................... 43 9.5 Input/Output Instructions ........................ 44 10. SWITCHES AND INDICATORS ............................... 45 10.1 Processor Front Panel ............................ 45 10.1.1 Switches .................................. 45 10.1.1.1 Bus Switches ..................... 46 10.1.1.2 Debug Mode Switch ................ 46 10.1.2 Indicators ................................ 47 10.1.3 Jack ...................................... 49 10.2 The Debug Console ................................ 49 10.2.1 Activation ................................ 49 10.2.2 Display Commands .......................... 50 10.2.3 Control Commands .......................... 51 10.2.4 Command Parameters ........................ 52 10.3 Installation ..................................... 52 11. INSTRUCTION EXECUTING TIMES ........................... 53 11.1 Address Calculation Times (AT) ................... 53 11.2 Execution Times (ET) ............................. 54 \f F_1_._ _ _ _ _ _ _ _ _I_N_T_R_O_D_U_C_T_I_O_N_ 1. The RC3503 is a small, general purpose 16-bit controller with an outstanding interruption and input/output system. This makes the computer especially suited for applications such as: Data and media conversion systems Communication terminal concentration systems Front-end computer for larger computer systems Process supervision and control systems Controller for a number of medium to low-speed periph- erals The main features of the RC3503 are summarized below: Storage: The used memory is dynamical, MOS with cycle times of 580 ns. The word length is 16 bits + 2 parity bits. 32 K words RAM memory is the max. address space. Storage Addressing: 8-bit bytes and 16-bit words are directly addressable. Arithmetic: The arithmetic unit processes 16-bit binary integers in parallel using twos complement notation. Interruption Levels: 32 interruption levels are included in the basic version. Can be expanded to 124 levels. Working Registers: The programmer has access to a set of 8 registers per interrup- tion level. One of the registers in each set contains a program counter and a carry indicator, whereas the remaining 7 are gene- ral registers of which 3 are used both as accumulators and index registers, and 4 as spare registers. \f Instruction Set: The computer has a repertoire of 50 standard instructions of which 34 refer to storage. All storage reference instructions can also be specified to operate with their effective address as ope- rand, i.e. immediate addressing. An instruction consists of 1, 2, or 3 consecutive words. Input/Output: A number of input/output instructions governs the data transfer between central processor and peripherals. Data transfer between peripherals and CPU is performed in serial mode, but the data are treated as parallel data, depending on the characteristics of the external device in question. Peripherals having high transfer rates communicate in blocks of words or bytes directly with main storage. All input/output operations are directed by interrupt signals. RC3503 is equipped with 32 serial I/O channels. The number of I/O channels can optional be expanded to 124 channels. Debug Facilities: A TTY compatible device can be connected directly to RC3503, and communicates with the micromachine in RC3503 to simulate a stan- dard operator panel. Real Time Clock: RC3503 is equipped with an onboard Real Time Clock, the frequency of which is controlled by the debugger. Default the Real Time Clock frequency is set to 20 ms and connected to the interrupt level 1. \f F_2_._ _ _ _ _ _ _ _ _D_E_S_I_G_N_ _O_B_J_E_C_T_I_V_E_S_ 2. The primary design objectives of the RC3503 computer were to construct a low cost computer with a flexible input/output system and with a powerful instruction set for ease of programming. Fur- thermore, peripheral devices should be connected to the computer with a minimum of interfacing. Important considerations in meet- ing the objectives are explained below. 2_._1_ _ _ _ _ _ _ _W_o_r_d_ _L_e_n_g_t_h_ 2.1 The bits for input/output devices ranges from 1 bit for tele- communication up to 12 bits for card readers and analog-to- digital converters. The basic arithmetic operands should there- fore not be less than 12 bits, preferably a few bits longer; on the contrary, a very much longer format serves no purpose since the computer is not intended for administrative data processing. Because the majority of peripheral equipment transfers 8 bits in parallel at a time, the word length must also be a multiple of 8 bits in order to optimize the utilization of storage. Cost consi- derations dictated that the smallest integer which satisfies afo- resaid conditions should be used, and consequently a word length of 16 bits was chosen. 2_._2_ _ _ _ _ _ _ _S_t_o_r_a_g_e_ _A_d_d_r_e_s_s_i_n_g_ 2.2 Data are handled most efficiently if they can be addressed di- rectly, and because of the widespread use of 8-bit bytes, a byte was adopted as the smallest addressable unit. From an addressing point of view, the instructions are divided into two classes ac- cording to whether the storage address refers to bytes or words. \f 2_._3_ _ _ _ _ _ _ _R_e_g_i_s_t_e_r_ _S_t_r_u_c_t_u_r_e_ 2.3 Internal registers of importance to the programmer are three 16- bit general registers, one 15-bit program counter, and a carry indication. The advantage of more than one general register is that it reduces the number of storage references required in a given program. The general registers of the RC3503 computer act both as accumulators and index registers, for which reason the full instruction set becomes available for address modifications. The collection of the above-mentioned programable registers is referred to as a set of working registers. The computer has not only one set of working registers, but 32 sets, namely one for each interruption level. Hence, we have eli- minated the storing of current status (program counter, carry, and accumulators) and loading of new status whenever program switching is demanded by the interruption system. The response time for answering an interrupt is thus reduced to a minimum, and the input/output system is designed to take full advantage of this fact. 2_._4_ _ _ _ _ _ _ _I_n_s_t_r_u_c_t_i_o_n_ _F_o_r_m_a_t_ 2.4 In principle, an instruction consists of an operation part and an address part. The operation part specifies an operand code, a re- sult register (if more than one exists), and an address mode (in- dexing, immediate, indirect, etc.). The address part is either a full address or an abbreviated address used in conjunction with either a fixed page scheme or as a displacement relative to an index register or the program counter. For a fixed 16-bit instruction format we have that if the operand portion expands at the expense of the address, the number of in- structions, result registers, and address modes taken together increase, but the usefulness of these instructions is severely affected due to the limited address range. Reversely, a large address part reduces the instruction repertoire and its mode fea- tures so that only a fraction of the entire instruction set may\f fully utilize the improved address range. As a consequence of this, it was decided to employ a variable instruction format, where an instruction may occupy 1, 2, or 3 words. 2_._5_ _ _ _ _ _ _ _I_n_p_u_t_/_O_u_t_p_u_t_ _S_t_r_u_c_t_u_r_e_ 2.5 In the design particular emphasis was put on the construction of an efficient and versatile input/output system. This is important because a major part of small computer systems is used for real- time control where the I/O capability has a profound influence on the total effectiveness of the system. A normal approach is to use two types of I/O data channels: (1) a low speed channel to which character-oriented devices such as typewriters, paper tape readers, etc. are connected; and (2) a high-speed channel to which block-oriented devices such as magne- tic tapes and display units are connected. Character transfer, via the low-speed channel, is under program control; and the program must either repeatedly test the channel status to see when the device becomes available or the device must respond with an interrupt when it is ready for transmission of next character. The first approach implies that the central processor can perform no other operations until all characters are transmitted, which in many applications are unacceptable. The efficiency of the second scheme is directly related to the time it takes to switch from one program to another. The high-speed channel transfers blocks of data at high rates di- rectly between storage and I/O devices, independent of program control once the transfer has been initiated. The transfer is supervised by additional hardware, normally: (1) a counter for current storage address; (2) a register for last storage address; (3) a comparator to detect end of block; (4) facilities to pack characters into word format and vice versa; and (5) logic to con- trol the operation of storage during I/O transfers. The hardware mentioned in (1) to (4) is placed in the device controller for which reason the cost of the device is significantly increased.\f The logic mentioned in (5) is incorporated in the central proces- sor, but because of its complexity it is normally offered as an option at an additional cost. Looking at the low-speed channel, it is obvious that the most ad- vantageous I/O system is one where I/O operations are initiated by interrupts and program switching time is zero. With regard to the high-speed channel, it is preferable to keep the block-mode concept, but desirable to minimize cost. The RC3503 solution to this problem is to have one data channel to which both low- and high-speed peripheral equipment may be connected. I/O operations are under program control and an interrupt signal is generated whenever a character is ready for transmission. Each interrupt signal is wired to its own set of working registers, and a fixed priority order exists among the register sets. Switching from one program to another is then reduced to merely move a pointer from the current register set to the new one; and we have in fact an ideal low-speed channel. Block-oriented devices make use of the general registers and the inherent arithmetic capabilities of the central processor, so no extra hardware is needed in the device controllers. When no I/O operation is in progress, the working registers are free for normal program execution. The time requi- red to transmit one character in or out of storage is two storage cycles, one to execute an I/O instruction and one to the actual transfer. The maximum transfer rate is thus halved in relation to a sophisticated high-speed channel, but this difference is seldom of practical interest for small computers. The available I/O instructions for data transfer are: 1. Transfer one word between working register W1 and external device. 3. Transfer a block of words or bytes directly between storage and external device. \f F_ 3_._ _ _ _ _ _ _ _ _C_O_M_P_U_T_E_R_ _O_R_G_A_N_I_Z_A_T_I_O_N_ 3. 3_._1_ _ _ _ _ _ _ _D_a_t_a_ _F_o_r_m_a_t_s_ 3.1 Two data formats are recognized by the RC3503, an 8-bit byte and a 16-bit word. A word consists of two bytes of which the left- most byte must have an even storage address. BYTE BYTE 0 7 8 15 WORD 0 15 Figure 3.1: Data formats. Storage addresses are always expressed as byte addresses. The byte locations are numbered consecutively starting with zero. When an instruction refers to a word in storage, bit 15 in the effective address is ignored. Thus it is irrelevant whether the effective address refers to the left or right byte of a word. 3_._2_ _ _ _ _ _ _ _N_u_m_b_e_r_ _R_e_p_r_e_s_e_n_t_a_t_i_o_n_ 3.2 The arithmetic unit of the computer assumes that numerical data are signed integers represented in twos complement form. In this notation the left-most bit represents the sign. For positive num- bers the sign bit is zero, for negative numbers one. S 0 1 15 Figure 3.2: Integer word. The negative of a number is obtained by complementing all bits, including the sign bit, in the number and then adding a 1 to the\f right-most bit. A signed integer represented by 16 bits is confi- ned to the range -32,768 <= integer word <= 32,767. Other data formats such as various forms of packed data words, multiple-length fixed-point, and floating-point representations must be defined by appropriate software routines. The programming of these routines is greatly simplified by a CARRY indication. If a carry occurs out of bit 0 in an arithmetic instruction, CARRY is set to 1, otherwise CARRY is reset to 0. A set of instructions makes it possible explicitly to set and reset CARRY just as there is a possibility for branching on the current value of CARRY. 3_._3_ _ _ _ _ _ _ _W_o_r_k_i_n_g_ _R_e_g_i_s_t_e_r_s_ 3.3 Figure 3.3. depicts the working registers, W0 to W3, associated to each interruption level. PROGRAM COUNTER CARRY W0X0 0 14 15 W1 X1 0 15 W2 X2 0 15 W3 X3 0 15 Figure 3.3: A set of working registers. \f Registers W1 to W3 are used by the programmer both as accumula- tors and index registers, in the latter case they are referred to as X1 to X3. Register W0 occupies, in some respect, an exceptio- nal position, because bits 0 to 14 specify the program counter, PC, and bit 15 equals the value of CARRY. Fifteen bits are just enough to locate any instruction in storage, since instructions are always an integer number of full words. Although there is a distinction in interpretation of W0 and the other registers, they are all alike with respect to instruction execution. By this we mean that any instruction is executed with an operand in, say W2, also is executed if the operand were pla- ced in W0. For example, a LOAD instruction may load any of the W registers with a word from storage, but of course, loading of W0 has the special effect of executing a program jump. Inter register load and store instructions are also provided which makes it possible to transfer information between W regis- ters belonging to the same or different interruption levels. 3_._4_ _ _ _ _ _ _ _I_n_t_e_r_r_u_p_t_i_o_n_ _S_y_s_t_e_m_ 3.4 A program interrupt feature permits an automatic switching from the current program sequence to another sequence in immediate re- sponse to specific external or internal events. The efficiency of an interruption system is directly related to the time it takes the central processor to perform this switching. Therefore, in the RC3503, we have associated a set of working registers to each interruption level so switching is reduced to connect a new set of working registers to the control and arithmetic unit; confer figure 3.4. \f 65534 65535 STORAGE 6 7 4 5 2 3 0 1 CONTROL AND ARITHMETIC UNIT PRIORITY SELECTION NETWORK W0 W0 W0 W1 W1 W1 W2 W2 W2 W3 W3 W3 INTERRUPTION 1 31 LEVEL: 0 Figure 3.4: RC3503 block diagram. The priority selection network contains a 32-bit interrupt req- uester buffer, IR, of which bits 1 to 31 can collect up to 31 incoming interrupt signals. A one in a bit position corresponds to an interrupt request, and bit N corresponds to the Nth inter- ruption level. Bit 0 in register IR occupies an exceptional posi- tion, because the value of this bit remains one equivalent to a permanent interrupt request. Connected to incoming interrupts IR: 1 - - - 0 1 2 31 Figure 3.5: Interrupt request register. \f Simultaneous interrupt signals are served in order of priority and the signal which is wired to the highest bit number in IR has highest priority. Input/Output devices with a high transfer rate should therefore have their interrupt lines wired to the right- most bits of register IR. If all incoming interrupt signals are honoured and no new requests arrive, interruption level 0 is au- tomatically selected. The interruption system is normally enabled, i.e. an interrupt request having a priority higher than the current one, causes a new set of working registers to be activated. In some cases, how- ever, it is desirable to disable the interruption system for shorter intervals. In disable mode, other interrupts are indeed collected, but they cannot change the interruption level, i.e. the current program proceeds. The two modes are under program control, and the flip-flop ENABLE is 1 for enable mode, 0 for disable. Register IR can be set under program control and we may summarize the supervision of the interruption system as follows: 1. A bit in IR is set to 1 by a request from an I/O device 2. A bit in IR is set to 1 by a request from the program by the instruction type INTERLEVEL INSTRUCTIONS 3. The bit in IR, correspondiong to the c_u_r_r_e_n_t_ interrup- tion level, is cleared by two instruction types LOAD REGISTER CLEAR INTERRUPT AND ENABLE I/O INSTRUCTIONS 4. ENABLE is set to 1 by three instruction types LOAD REGISTER CLEAR INTERRUPT AND ENABLE INTERLEVEL INSTRUCTIONS I/O INSTRUCTIONS 5. ENABLE is cleared by the instruction type INTERLEVEL INSTRUCTIONS \f 3_._5_ _ _ _ _ _ _ _I_n_p_u_t_/_O_u_t_p_u_t_ 3.5 Any peripheral is connected to the CPU by means of a 4 pairs cable, which is transformer coupled at both ends secure a very high noise immunity. The transmission of data is performed in serial mode whether the device connected is of parallel or of serial nature. The data word transferred consists of a 4 bits header and 0 to 16 information bits. \f Header Data part M_M_ "1" X X "1" 0 to 16 information bits P_P_ 0 1 synchronizing bits The header contains the following information: TRANSMISSION F_R_O_M_ _C_P_U_ _T_O_ _P_E_R_I_P_H_E_R_A_L_ "OUTPUT 1 0 0 1 Read data Header" 1 0 1 1 Read status 1 1 0 1 Write data 1 1 1 1 write control TRANSMISSION T_O_ _C_P_U_ _F_R_O_M_ _P_E_R_I_P_H_E_R_A_L_ "INPUT 1 0 0 1 16 bits (word) HEADER" 1 0 1 1 EOI (end of information) 1 1 0 1 8 bits (byte) 1 1 1 1 not used CENTRAL PROCESSOR UNIT I/O CHANNELS DEVICE STATUS CONTROL DATA IN DATA OUT \f In principle each device contains 4 16-bit registers. The regis- ters are 2 data registers (one for each direction of flow), one control register and one status register. However, for actual de- vices one or more of the registers may be omitted, some of the registers may be combined to one, or the register length may be shortened from 16 bits right down to 1 bit. The central processor initiates an I/O instruction by selecting the I/O cable leading to the device addresses whereafter the data are transferred. Communication may be initiated either by program or by interrupt from a device. An interrupt is detected on the data line when a "1" bit is sent to the CPU, and it has not asked for data. The data flow from the computer to the four device registers and vice versa is illustrated by 4 general I/O commands. The commands describe the possible patterns of execution for the I/O channel and the device controllers, whereas specific details concerning how data are stored in the computer is postponed to Chapter 8, where the actual I/O instructions are defined. Read Status: The read status command is a request to the device to transfer the contents of status to working register W1. The number of status bits and their interpretation is device dependent, but the following list indicates their nature. Busy/Available, the busy mode signifies that the pre- vious operation has not yet been com- pleted, - available mode the opposite. Disconnected, i.e. power to the device is switched of. Intervention, i.e. the operator has interferred manu- ally with the device, e.g. he has switched the typewriter to operate in off-line mode. \f Timer, i.e. the device or the operator has not completed an operation within a prede- termined time. Write Control: The write control causes an immediate transfer of a control word from working register W1 to the control register, and the compu- ter proceeds to the next instruction. When the control operation is completed, an interrupt is normally generated. The individual bits in the control register specify commands, which are executed by the device controller. Examples are: Generate an interrupt request Start or stop peripheral equipment Check or generate parity Operations such as for magnetic tapes rewind, erase, upspace, file, etc. Read Data: The read data command causes an immediate transfer of information from data buffer to working register W1 or directly into storage. The computer is released as soon as this transfer is completed. When the next character is ready in the device, it is normally indicated by a new interrupt signal. Write Data: The write data command causes an immediate transfer from working register W1 or directly from storage to the data buffer in the selected device. The computer is released as soon as this trans- fer is completed. When the device is ready to receive the next character, it is normally indicated by a new interrupt. Transfer of information is done in analogy with read data. \f 3_._6_ _ _ _ _ _ _ _B_a_s_i_c_ _I_n_s_t_r_u_c_t_i_o_n_ _F_o_r_m_a_t_s_ 3.6 There are three basic formats and the instructions are grouped according to formats as follows: Format 1: Arithmetic and Logical instructions Format 2: Branch and Continue instructions Format 3: Shift-Rotate, Interlevel, and Input/Output instructions The length of instruction Format 1 is one or two words, depending on whether the 7-bit displacement is sufficient or not for speci- fying a word in storage. Format 2 has a length of two or three words also determined by the range of the displacement. Format 3 consists of one word or two words. The chapters to follow define the RC3503 instruction set. Chapter 9 gives a complete instruc- tion list with corresponding mnemonics. \f F_ 4_._ _ _ _ _ _ _ _ _A_R_I_T_H_M_E_T_I_C_ _A_N_D_ _L_O_G_I_C_A_L_ _I_N_S_T_R_U_C_T_I_O_N_S_ 4. 4_._1_ _ _ _ _ _ _ _I_n_s_t_r_u_c_t_i_o_n_ _F_o_r_m_a_t_ _1_ 4.1 Format 1a: F W X D 0 5 7 9 15 Format 1b: 1 1 1 1 0 W X I n F 0 5 7 9 10 11 15 Format 1c: 1 1 1 1 1 W X I n F 0 5 7 9 10 11 15 A 0 15 Figure 4.1: Instruction format 1. Format 1 is shown in Figure 4.1 and it is characterized by having a function or operand code, F, where the left-most bit of the F field equals 0. The remaining four bits specify therefore 16 ba- sic instructions, having the numeric codes from 0 to 15. Format 1a may be regarded as the basic format and the two others as expansions with the sole purpose of extending the addressing facilities. Format 1b is derived from the basic format by remo- ving the original F field to the five right-most positions of the word, and in the thus released positions the numeric code 30 is inserted. Code 31 is used in a similar way to specify format 1c. The length of formats 1a and 1b is one word, but two words are used in case 1c. The 2-bit W field specifies one of the four working registers as the result register. Bits 7 to 8 constitute the X field and this field selects the current index register, if any. Working regis- ters W1, W2, and W3 act as index registers when the X field has the values 1, 2, and 3, respectively, whereas no indexing is spe- cified when the value is 0. The latter implies that W0 and with that the program counter cannot be used for address modifica- tions; in other words relative addressing is not available. \f The field D and A supply further information for calculating the effective address. D specifies a displacement from -64 to 63 by- tes within a contiguous storage area, and A can be used to di- rectly address any byte in a page of maximum capacity of max 32 Kwords. Immediate addressing is specified if the 1-bit I field equals 1. If immediate addressing is employed, the operand is equal to the calculated effective address and not to the contents of the loca- tion to which the effective address points, as is the case when I = 0. The n bit (i.e. next) controls a count feature that automatically increases the contents of the working register which is selected by the X field. Register W0 is incremented if the X field equals 0. Incrementation takes place for n = 1, and the increment is 2 for instructions which refer to words and 1 for byte references. The instruction list to follow defines the amount of incrementation for each instruction. 4_._2_ _ _ _ _ _ _ _A_d_d_r_e_s_s_ _a_n_d_ _O_p_e_r_a_n_d_ _C_a_l_c_u_l_a_t_i_o_n_ 4.2 From the programmer>s point of view storage addresses are always expressed as byte addresses. The byte locations are numbered con- secutively from zero to maximum. The effective address, EA, is calculated on basis of either a displacement, D, or a full address, A, and probably an index register, X. Each of these components are treated as signed integers, but when EA refers to storage, ST, it is interpreted as an unsigned integer of 16 bits. An example, the effective address -1 refers to storage location 65535. Figure 4.2 shows the evaluation of the effective address and from this it is obvious that Format 1c reduces to Format 1b when A e- quals zero. As previously mentioned, the operand equals for I = 1 the effective address and for I = 0 the contents of the location specified by EA. Since 1a does not have an I bit, the programmer\f cannot specify immediate addressing as he wishes. By definition we have immediate addressing for X field equal to zero, otherwise not. The program Counter, W0(0:14), is automatically incremented by the central processor to point at the next word whenever an in- struction or part of it is fetched from storage. The calculation of the effective address and the operand i con- densed into the following Fetch algorithm: FORMAT 1a: Operand X field EA X field I=0 I=1 00 D 00 - D 01 X1+D 01 ST(X1+D) - 10 X2+D -64<_D<_63 10 ST(X2+D) - 11 X3+D 11 ST(X3+D) - FORMATS 1b and 1c: Operand X field EA X field I=0 I=1 00 A 00 ST(A) A 01 X1+A -32,768<_ 01 ST(X1+A) X1+A 10 X2+A A<_32,767 10 ST(X2+A) X2+A 11 X3+A 11 ST(X3+A) X3+A Figure 4.2: Address and operand calculation. Fetch: FR:= ST(W0); comment Fetch instruction, 1st word; W0:= W0 + 2; comment Increase Program Counter; if FR(0:5) < ' 30 and FR(0:5) < ' 31 then begin comment Extend the displacement to a 16-bit signed integer; EA:= 9extFR(9)conFR(9:15) end; \f if FR(0:5) = 30 then EA:= 0; if FR(0:5) = 31 then begin comment Fetch instruction, 2nd. word; EA:=ST(W0); W0:= W0 + 2 end; if FR(7,8) < ' 0 then EA:= EA + W(FR(7,8)); comment indexing; Operand:= if I = 1 then EA else ST(EA); go to Instruction Execution; 4_._3_ _ _ _ _ _ _ _I_n_s_t_r_u_c_t_i_o_n_ _L_i_s_t_ 4.3 This section defines arithmetic and logical instructions. The CARRY bit is explicitly mentioned if it is altered by an instruc- tion whose result register is different from W0. LOAD REGISTER Load the W register with the storage word addressed or for imme- diate addressing the effective address of the instruction. The contents of storage remain unchanged. If count is specified, the contents of X are increased by 2. W:= Operand; if n = 1 then X:= X + 2; LOAD COMPLEMENT Load the W register with the twos complement of the storage word addressed or for immediate addressing the effective address of the instruction. The contents of storage remain unchanged. Com- plementation of the maximum negative number yields the maximum negative number, since it has no positive counterpart. CARRY is set in accordance with the carry out of position zero. If count is specified, the contents of X are increased by 2. W:= - Operand; CARRY:= carry; if n = 1 then X:= X + 2; \f LOAD INDIRECT Load the W register with the storage word addressed by the ope- rand. The contents of storage remain unchanged. If count is spe- cified, the contents of X are increased by 2. W:= ST(Operand); if n = 1 then X:= X + 2; STORE REGISTER Store the W register in the storage word addressed. For immediate addressing and no indexing the W register is stored in the loca- tion specified by the effective address. For immediate addressing and indexing the W register is stored in the X register. The W register remains unchanged. If count is specified, the contents of X are increased by 2. if l = 0 then ST(EA):= W; if l = 1 and X field = 0 then ST(EA):= W; if l = 1 and X field < ' 0 then X:= W; if n = 1 then X:= X + 2; STORE INDIRECT Store the W register in the storage word addressed by the operand. The register remains unchanged. If count is specified, the contents of X are increased by 2. ST(Operand):= W; if n = 1 then X:= X + 2; EXCHANGE STORE AND REGISTER Store the W register in the storage addressed and the previous contents of the storage word is loaded into the register. For im- mediate addressing and no indexing the W register is stored in the location specified by the effective address and the effective ad- dress is loaded into the W register. For immediate addressing and indexing the contents of W and X are exchanged. If count is spe- cified, the contents of X are increased by 2. \f if l = 0 then begin A:= ST(EA); ST(EA):= W; W:= A end; if l = 1 and X field = 0 then begin ST(EA):= W; W:= EA end; if l = 1 and X field < ' 0 then begin A:= X; X:= W; W:= A end; if n = 1 then X:= X + 2; LOAD BYTE Load the right half of the W register with the storage byte ad- dressed and clear the left half of W. For immediate addressing, the right half of W is loaded by either the left-most or right- most 8 bits of the effective address of the instruction depending on whether the effective address is even or odd. The contents of X are increased by 1. W(0:7):= 0; W(8:15):= if EA(15) = 0 then Operand(0:7) else Operand(8:15); if n = 1 then X:= X + 1; STORE BYTE Store the right half of the W register in the storage byte addressed. The register remains unchanged. Immediate addressing has the same effect. If count is specified, the contents of X are increased by 1. if EA(15) = 0 then ST(EA)(0:7):= W(8:15) else ST(EA)(8:15):= W(8:15); if n = 1 then X:= X + 1; ADD INTEGER WORD Add to the W register the storage word addressed or for immediate addressing the effective address of the instruction. The contents of storage remain unchanged. CARRY is set in accordance with the carry out of position zero. If count is specified, the contents of X are increased by 2. W:= W + Operand; CARRY:= carry; if n = 1 then X:= X + 2; \f SUBTRACT INTEGER WORD Subtract from the W register the storage word addressed or for immediate addressing the effective address of the instruction. The contents of storage remain unchanged. CARRY is set in accordance with the carry out of position zero. If count is specified, the contents of X are increased by 2. W:= W - Operand; CARRY:= carry; if n = 1 then X:= X + 2; LOGICAL AND Form the logical AND operation of the W register and the storage word addressed or for immediate addressing the effective address of the instruction. The result is placed in the W register. The contents of storage remain unchanged. If count is specified, the contents of X are increased by 2. W:= W and Operand; if n = 1 then X:= X + 2; LOGICAL OR Form the logical OR operation of the W register and the storage word addressed or for immediate addressing the effective address of the instruction. The result is placed in the W register. The contents of storage remain unchanged. If count is specified, the contents of X are increased by 2. W:= W or Operand; if n = 1 then X:= X + 2; LOGICAL EXCLUSIVE OR Form the logical EXCLUSIVE OR operation of the W register and the storage word addressed or for immediate addressing the effective address of the instruction. The result is placed in the W regi- ster. The contents of storage remain unchanged. If count is spe- cified, the contents of X are increased by 2. W:= W exclusive or Operand; if n = 1 then X:= X + 2; \f LOAD REGISTER CLEAR INTERRUPT AND ENABLE Load the W register with the operand and clear the current inter- rupt bit. The interrupt system is enabled. The contents of sto- rage remain unchanged. If count is specified, the contents of X are increased by 2. W:= Operand; IR(current interrupt):= 0; ENABLE:= 1; if n = 1 then X:= X + 2; READ SWITCHES Load the W register with the contents of the Front Panel data switches. If count is specified, the contents of X are increased by 2. W:= switches; if n = 1 then X:= X + 2; MOVE Before execution of this instruction W1, W2, and W3 had to be defined: W1: Source module Destination module 0 8 15 W2: Source Address 0 15 Word address in W3: Destination Address the area 0-32 KW 0 15 This instruction moves a word from source place in memory to the destination place. The two addresses is not needed to be in the same 64 K bytes memory module. The addressed W and X register is not destroyed. B.+ 5 - 15 in the instruction are dummy. The source/destination module in the W1 register has the following layout: 0/8 4/12 7/15 module no. 0 =' RAM 1 =' ROM \f F_ 5_._ _ _ _ _ _ _ _ _B_R_A_N_C_H_ _A_N_D_ _C_O_N_T_I_N_U_E_ _I_N_S_T_R_U_C_T_I_O_N_S_ 5. 5_._1_ _ _ _ _ _ _ _I_n_s_t_r_u_c_t_i_o_n_ _F_o_r_m_a_t_ _2_ 5.1 2a: F W X D 0 5 7 9 15 B 0 15 2b: 1 1 1 1 0 W X I n F 0 5 7 9 10 11 15 B 0 15 2c: 1 1 1 1 1 W X I n F 0 5 7 9 10 11 15 A 0 15 B 0 15 Figure 5.1: Instruction format 2. Format 2 is shown in figure 5.1 and it is characterized by having a function or operand code, F, where the left-most two bits of the F field equal 10. The remaining three bits specify eight branch instructions, i.e. instructions which break the normal instruction sequence if a branch condition is satisfied. The three variations of Format 2 are identical to the corresponding Formats 1a, 1b, and 1c apart from two exceptions. First, the new format is extended with one word, namely the B field; and second, the n bit is interpreted differently. The 16-bit B field contains a branch address to which the program jumps if the specified condition is true. Fields X. D, A, and I\f have no influence on the branch address, but are employed in de- fining the effective address and the operand exactly as for For- mat 1. The n bit (i.e. not), if one, extends the branch instruction with their logical counterparts, called the continue instructions. The difference between the two instruction groups is obvious from the following two algorithms: Branch Instructions (n = 0): if condition = true then branch else continue; Continue Instructions (n = 1): if condition = true then continue else branch; A continue instruction, for example, continue if p ' q is, of course. equivalent to the branch instruction branch if p <= q, but we have preferred not to call them branch instructions since they do not exist in Format 2a. 5_._2_ _ _ _ _ _ _ _A_d_d_r_e_s_s_ _a_n_d_ _O_p_e_r_a_n_d_ _C_a_l_c_u_l_a_t_i_o_n_ 5.2 The effective address is calculated exactly as defined in the Fetch algorithm in Chapter 4.2; the same apply to the operand. 5_._3_ _ _ _ _ _ _ _I_n_s_t_r_u_c_t_i_o_n_ _L_i_s_t_ 5.3 This section defines Format 2 instructions. The CARRY bit is un- altered if no branch occurs, otherwise it is explicitly set to 0 or 1 depending on whether the branch address is even or odd. Branch instructions are defined for all Format 2 variations, whereas continue instructions exist in Format 2b and 2c only. \f BRANCH IF GREATER Compare the W register and the operand as signed integers. The operand equals either the storage word addressed or for immediate addressing the effective address of the instruction. If the re- gister is greater than the operand, then branch to location B, otherwise execute the next instruction in sequence. W0:= if W ' Operand then B else W0 + 2; BRANCH IF EQUAL Compare the W register and the operand as signed integers. The operand equals either the storage word addressed or for immediate addressing the effective address of the instruction. If the re- gister equals the operand, then branch to location B, otherwise execute the next instruction in sequence. W0:= if W = Operand then B else W0 + 2; BRANCH IF LESS Compare the W register and the operand as signed integers. The operand equals either the storage word addressed or for immediate addressing the effective address of the instruction. If the re- gister is less than the operand, then branch to location B, otherwise execute the next instruction in sequence. W0:= if W < Operand then B else W0 + 2; BRANCH IF GREATER THAN BYTE Compare the W register and the byte operand extended at the ex- treme left with zeroes. The byte operand equals the storage byte addressed, except for immediate addressing where the byte operand is the left- or right-most 8 bits of the effective address de- pending on whether the effective address is even or odd. If the register is greater than the positive operand, then branch to location B, otherwise execute the next instruction in sequence. A(0:7):= 0; A(8:15)= if EA(15) = 0 then Operand(0:7) else Operand(8:15); W0:= if W ' A then B else W0 + 2; \f BRANCH IF EQUAL TO BYTE Compare the W register and the byte operand extended at the ex- treme left with zeroes. The byte operand equals the storage byte addresses; for immediate addressing the byte operand is the left- or right-most 8 bits of the effective address of the instruction depending on whether the effective address is even or odd. If the register equals the extended operand, then branch to location B, otherwise execute the next instruction in sequence. A(0:7):= 0; A(8:15):= if EA(15) = 0 then Operand(0:7) else Operand(8:15) W0:= if W = A then B else W0 + 2; BRANCH IF LESS THAN BYTE Compare the W register and the byte operand extended at the ex- treme left with zeroes. The byte operand equals the storage byte addressed; for immediate addressing the byte operand is the left- or right-most 8 bits of the effective address of the instruction depending on whether the affective address is even or odd. If the register is less than the extended operand, then branch to loca- tion B, otherwise execute the next instruction in sequence. A(0:7):= 0; A(8:15):= if EA(15) = 0 then Operand(0:7) else Operand(8:15); W0:= if W < A then B else W0 + 2; BRANCH IF ALL SELECTED BITS ARE ZERO Use the operand as a mask to test selected bits in the W register. The operand equals either the storage word addressed or for imme- diate addressing the effective address of the instruction. If all the selected bits are zero, then branch to location B, otherwise execute the next instruction in sequence. A:= W and Operand; W0:= if A = 0 then B else W0 + 2; \f BRANCH IF SELECTED BITS HAVE ODD PARITY Use the operand as a mask to test selected bits in the W register. The operand equals either the storage word addressed or for imme- diate addressing the effective address of the instruction. If all the selected bits consists of an odd number of ones, then branch to location B, otherwise execute the next instruction in sequen- ce. A:= W and Operand; W0:= if odd A then B else W0 + 2; CONTINUE IF GREATER Compare the W register and the operand as signed integers. The operand equals either the storage word addressed or for immediate addressing the effective address of the instruction. If the re- gister is greater than the operand, then execute the next in- struction in sequence, otherwise brandh to location B. W0:= if W ' Operand then W0 + 2 else B; CONTINUE IF EQUAL Compare the W register and the operand as signed integers. The operand equals either the storage word addressed or for immediate addressing the effective address of the instruction. If the re- gister equals the operand, then execute the next instruction in sequence, otherwise branch to location B. W0:= if W = Operand then W0 + 2 else B; CONTINUE IF LESS Compare the W register and the operand as signed integers. The operand equals either the storage word addressed or for immediate addressing the effective address of the instruction. If the re- gister is less than the operand, then execute the next instruc- tion in sequence, otherwise branch to location B. W0:= if W < Operand then W0 + 2 else B; \f CONTINUE IF GREATER THAN BYTE Compare the W register and the byte operand extended at the ex- treme left with zeroes. The byte operand equals the storage byte addressed; for immediate addressing the byte operand is the left- or right-most 8 bits of the effective address of the instruction depending on whether the effective address is even or odd. If the register is greater than the extended byte operand, then execute the next instruction in sequence, otherwise branch to location B. A(0:7):= 0; A(8:15):= if EA(15) = 0 then Operand(0:7) else Operand(8:15); W0:= if W ' A then W0 + 2 else B; CONTINUE IF EQUAL TO BYTE Compare the W register and the byte operand extended at the ex- treme left with zeroes. The byte operand equals the storage byte addresses; for immediate addressing the byte operand is the left- or right-most 8 bits of the effective address of the instruction depending on whether the effective address is even or odd. If the register equals the extended operand, then execute the next in- struction in sequence, otherwise branch to location B. A(0:7):= 0; A(8:15):= if EA(15) = 0 then Operand(0:7) else Operand(8:15); W0:= if W = A then W0 + 2 else B; CONTINUE IF LESS THAN BYTE Compare the W register and the byte operand extended at the extreme left with zeroes. The byte operand equals the storage byte addressed; for immediate addressing the byte operand is the left- or right-most 8 bits of the effective address of the instruction depending on whether the effective address is even or odd. If the register is less than the extended operand, then execute the next instruction in sequence, otherwise branch to location B. A(0:7):= 0; A(8:15):= if EA(15) = 0 then Operand(0:7) else Operand(8:15); W0:= if W < A then W0 + 2 else B; \f CONTINUE IF ALL SELECTED BITS ARE ZERO Use the operand as a mask to test selected bits in the W register. The operand equals either the storage word addressed or for immediate addressing the effective address of the instruction. If all the selected bits are zero, then execute the next instruction in sequence, otherwise branch to location B. A:= W and Operand; W0:= if A = 0 then W0 + 2 else B; CONTINUE IF SELECTED BITS HAVE ODD PARITY Use the operand as a mask to test selected bits in the W register. The operand equals either the storage word addressed or for immediate addressing the effective address of the instruction. If all the selected bits consists of an odd number of ones, then execute the next instruction in sequence, otherwise branch to location B. A:= W and Operand; W0:= if odd A then W0 + 2 else B; \f F_ 6_._ _ _ _ _ _ _ _ _S_H_I_F_T_-_R_O_T_A_T_E_ _I_N_S_T_R_U_C_T_I_O_N_S_ 6. 6_._1_ _ _ _ _ _ _ _F_o_r_m_a_t_ _3_ _f_o_r_ _S_h_i_f_t_-_R_o_t_a_t_e_ _I_n_s_t_r_u_c_t_i_o_n_s_ 6.1 F W X CODE SHIFTS 0 5 7 9 12 15 Figure 6.1: Format 3 for shift-rotate instructions. The shift-rotate group has a format as illustrated in Figure 6.1 with a function code equal to 28. SHIFTS is a positive integer in the interval from 0 to 15 which defines the number of shifts if x = 0. If the X < ' 0 then the shift value is taken from the regi- ster specified by the x = field (x1, x2, x3) bit 12:15. The 3-bit CODE field specifies the type of instruction to be executed as follows CODE INSTRUCTION 000 Rotate Right 001 Rotate Left 010 Logical Shift Right 011 Logical Shift Left 100 No carry rotate right 101 No carry rotate left 110 Arithmetic Shift Right 111 Undefined 6_._2_ _ _ _ _ _ _ _F_e_t_c_h_ _A_l_g_o_r_i_t_h_m_ _f_o_r_ _F_o_r_m_a_t_ _3_ 6.2 The Fetch algorithm for format 3 instructions becomes very simple since this format consists of only one word. Fetch: FR:= ST(W0); comment Fetch instruction; W0:= W0 + 2; comment Increase Program Counter; go to Instruction Execution; \f 6_._3_ _ _ _ _ _ _ _I_n_s_t_r_u_c_t_i_o_n_ _L_i_s_t_ 6.3 This section defines shift-rotate instructions. The CARRY bit is explicitly mentioned if it is altered by an instruction whose re- sult register is different from W0. (The term "con" used in the following list means "concatenate"). ROTATE RIGHT Rotate right the contents of CARRY and the W register the number of places specified by SHIFTS. CARRY is rotated into bit 0 of W, bit 15 into CARRY. for SHIFTS:= SHIFTS - 1 step - 1 until 0 do CARRYconW(0:15):= W(15)conCARRYconW(0:14); ROTATE LEFT Rotate left the contents of CARRY and the W register the number of places specified by SHIFTS. CARRY is rotated into bit 15 of W, bit 0 into CARRY. for SHIFTS:= SHIFTS - 1 step - 1 until 0 do CARRYconW(0:15):= W(0:15)conCARRY; LOGICAL SHIFT RIGHT Shift right, with zero insertion in bit 0, the contents of the W register the number of places specified by SHIFTS. for SHIFTS:= SHIFTS - 1 step - 1 until 0 do begin CARRY:= W(15); W(0:15):= 0conW(0:14) end; LOGICAL SHIFT LEFT Shift left, woth zero insertion in bit 15, the contents of the W register the number of places specified by SHIFTS. for SHIFTS:= SHIFTS - 1 step - 1 until 0 do begin CARRY:= W(0); W(0:15):= W(1:15)con0 end; \f ARITHMETIC SHIFT RIGHT Shift right, with sign extension in bit 0, the contents of the W register the number of places specified by SHIFTS. for SHIFTS:= SHIFTS - 1 step - 1 until 0 do begin CARRY:= W(15); W(0:15):= W(0)conW(0:14) end; NO CARRY ROTATE RIGHT Rotate right the contents of W(0:15) the number of places specified by SHIFTS. CARRY is not changed. Bit 15 is rotated into bit 0. for SHIFTS:= SHIFTS - 1 step - 1 until 0 do W(0:15):= W(15) con W(0:14); NO CARRY ROTATE LEFT Rotate left the contents of W(0:15) the number of places specified by SHIFTS. CARRY is not changed. Bit 0 is rotated into bit 15. for SHIFTS:= SHIFTS - 1 step - 1 until 0 do W(0:15):= W(1:15) con W(0); \f F_ 7_._ _ _ _ _ _ _ _ _I_N_T_E_R_L_E_V_E_L_ _I_N_S_T_R_U_C_T_I_O_N_S_ 7. 7_._1_ _ _ _ _ _ _ _F_o_r_m_a_t_ _3_ _f_o_r_ _I_n_t_e_r_l_e_v_e_l_ _I_n_s_t_r_u_c_t_i_o_n_s_ 7.1 3a: F W X CODE N 0 5 7 9 10 11 15 3c: W X CODE DUMMY 0 4 5 7 9 10 11 15 N < 124 0 8 15 Figure 7.1: Format 3 for interlevel instructions. The purpose of interlevel instructions is to transfer information between two working registers belonging to the same or to diffe- rent interruption levels. They have a format as depicted in Figure 7.1. W selects a working register in the current interrup- tion level and X a register belonging to the interruption level specified by the N field. The interlevel instructions may, in addition to their normal execution, also control interruption system. A letter D, E, or S is then used as a suffix to the basic mnemonic code. The effects of the suffixes and the corresponding D and E fields are as follows: Suffix Code Effect on Interruption System E 01 Enable the interruption system for all interrupts D 10 Disable the interruption system for all interrupts S 11 Set the interrupt level specified by the N field \f 7_._2_ _ _ _ _ _ _ _I_n_s_t_r_u_c_t_i_o_n_ _L_i_s_t_ 7.2 INTERLEVEL LOAD Load the W register with the working register specified by X from interruption level N. The contents of X remain unchanged. Control the status of the interruption system as follows: W(current level):= X(Nth level); if CODE = D then ENABLE:= 0; if CODE = E then ENABLE:= 1; if CODE = S then INTERRUPT(N):= 1; INTERLEVEL STORE Store the W register into the working register specified by X from interrupt level N. The contents of W remain unchanged. Control the status of the interruption system as follows: X(Nth level):= W(current level); if CODE = D then ENABLE.= 0; if CODE = E then ENABLE:= 1; if CODE = S then INTERRUPT(N):= 1; \f F_ 8_._ _ _ _ _ _ _ _ _I_N_P_U_T_/_O_U_T_P_U_T_ _I_N_S_T_R_U_C_T_I_O_N_S_ 8. 8_._1_ _ _ _ _ _ _ _F_o_r_m_a_t_ _3_ _f_o_r_ _I_n_p_u_t_/_O_u_t_p_u_t_ _I_n_s_t_r_u_c_t_i_o_n_s_ 8.1 F W X M DEV. NO. 0 5 7 9 11 15 Figure 8.1: Format 3 for input/output instructions. Figure 8.1 shows the input/output instruction format and it is characterized by a function code where the left-most four bits equal 1100. Hence, only two basic input/output instructions exist. One of them, the read instruction, governs the data trans- fer from a peripheral device to the computer, whereas the other, the write instructions, controls the data path in opposite direc- tion. Bits 11 to 15 select the device that is to respond to the in- struction. if bit (11:15) = 0 then the device number is set equal to the value of current interrupt level. The M field consist of two bits, which modify the execution of the basic instruction. The remaining two fields, W and X, pick out two registers for compare or address purpose, as it appears from the instruction definitions to follow. The operation of the device controllers is already explained in Chapter 3.5, where we introduced four general I/O commands. This explanation is also valid for the actual I/O instructions. But, in the previous discussion, we did not define how incoming and outgoing data are interpreted by the computer nor how data may influence the instruction sequence. These questions are answered in the instruction list to follow. Tables 8.1 and 8.2 show the relations between the M field in the instruction format and the actual I/O instructions. The second column connects an I/O instruction to its equivalent general I/O command; thereby the action taken by the device controllers for various I/O instructions is determined. \f GENERAL I/O INSTRUCTIONS M I/O COMMANDS 00 Read Data Read Word and Compare 01 Read Status Read Status and Compare 10 Read Data Read Block of bytes 11 Read Data Read Block of Words Table 8.1: Modifications of basic read instruction. GENERAL I/O INSTRUCTIONS M I/O COMMANDS 00 Write Data Write Word and Compare 01 Write Control Write Control and Compare 10 Write Data Write Block of Bytes 11 Write Data Write Block of Words Table 8.2: Modifications of basic write instruction. 8_._2_ _ _ _ _ _ _ _I_n_s_t_r_u_c_t_i_o_n_ _L_i_s_t_ 8.2 READ STATUS AND COMPARE Transfer the contents of the STATUS buffer in the selected device to working register W1. If the contents of register W and X differ, and End of Information is zero, then clear the current interrupt bit and repeat the read instruction; otherwise execute the next instruction in sequence. In any event, the interruption system is enabled. A:= X; W1:= STATUS; if W < ' A and EOI = 0 then begin IR(current level):=0; W0:= W0 - 2 end; ENABLE:= 1; \f READ WORD AND COMPARE Transfer a word from the DATA IN buffer in the selected device to working register W1. If the contents of registers W and X differ, and End of Information is zero, then clear the current interrupt bit and repeat the read instruction; otherwise execute the next instruction in sequence. In any event, the interruption system is enabled. A:= X; W1:= DATA IN; if W < ' A and EOI = 0 then begin IR(current level):= 0; W0:= W0 - 2 end; ENABLE:= 1; READ BLOCK OF BYTES Transfer a byte from the DATA IN buffer in the selected device to a byte location in storage specified by register X. If X, after being incremented by 1, differs from W, and End of Information is zero, then clear the current interrupt and repeat the read instruction; otherwise execute the next instruction in sequence. In any event, the interruption system is enabled. if X(15) = 0 then ST(X)(0:7):= DATA IN(8:15) else ST(X)(8:15):= DATA IN(8:15); X:= X + 1; if W < ' X and EOI = 0 then begin IR(current level):=0; W0:= W0 - 2 end; ENABLE:= 1; READ BLOCK OF WORDS Transfer a word from the DATA IN buffer in the selected device to a word location in storage specified by register X. If X, after being incremented by 2, differs from W, and End of Information is zero, then clear the current interrupt bit and repeat the read instruction; otherwise execute the next instruction in sequence. In any event, the interruption system is enabled. \f ST(X):= DATA IN; X:= X + 2; if W < ' X and EOI = 0 then begin IR(current level):= 0; W0:= W0 - 2 end; ENABLE:= 1; WRITE CONTROL AND CLEAR Transfer the contents of register W1 to the CONTROL buffer in the selected device. If the X field of the instruction equals zero,then clear the current interrupt bit and execute the next instruction in sequence; otherwise just execute the next instruction in sequence. In any event, the interruption system is enabled. CONTROL:= W1; if X field = 0 then begin IR(current level):= 0; end; ENABLE:= 1; WRITE WORD AND COMPARE Transfer the contents of register W1 to the DATA OUT buffer in the selected device. If the contents of register W and X differ, then repeat the write instruction, otherwise execute the next instruc- tion in sequence. In any event, the interruption system is en- abled. DATA OUT:= W1; if W < ' X then begin IR(current level):= 0; W0:= W0 - 2 end; ENABLE:= 1; WRITE BLOCK OF BYTES Transfer a byte from the byte location in storage specified by X to the DATA OUT buffer in the selected device. If X, after being in- cremented by 1, differs from W, then clear the current interrupt bit and repeat the write instruction; otherwise execute the next instruction in sequence. In any event, the interruption system is enabled. DATA OUT(8:15):= if X(15) = 0 then ST(X)(0:7) else ST(X)(8:15); X:= X + 1; if W < ' X then begin IR(current level):= 0; W0:= W0 - 2 end; ENABLE:= 1; \f F_ 9_._ _ _ _ _ _ _ _ _I_N_S_T_R_U_C_T_I_O_N_ _S_E_T_ 9. 9_._1_ _ _ _ _ _ _ _A_r_i_t_h_m_e_t_i_c_ _a_n_d_ _L_o_g_i_c_a_l_ _I_n_s_t_r_u_c_t_i_o_n_s_ 9.1 Format 1a: F W X D 0 5 7 9 15 Format 1b: 1 1 1 1 0 W X I n F 0 5 7 9 10 11 15 1 1 1 1 1 W X I n F Format 1c: 0 5 7 9 10 11 15 A F0 F1 F2 F3 F4 ldr Load Register 0 0 0 0 0 ldc Load Complement 0 0 0 0 1 ldi Load Indirect 0 0 0 1 0 str Store Register 0 0 0 1 1 sti Store Indirect 0 0 1 0 0 xsr Exchange Store and Register 0 0 1 0 1 ldb Load Byte 0 0 1 1 0 stb Store byte 0 0 1 1 1 add Add Integer Word 0 1 0 0 0 sub Subtract Integer Word 0 1 0 0 1 and Logical AND 0 1 0 1 0 lor Logocal OR 0 1 0 1 1 xor Logical Exclusive OR 0 1 1 0 0 lce Load Register Clear Interrupt + Enable 0 1 1 0 1 mov Move Word between Memory Modules 0 1 1 1 0 rsw Read Switches 0 1 1 1 1 \f 9_._2_ _ _ _ _ _ _ _B_r_a_n_c_h_ _a_n_d_ _C_o_n_t_i_n_u_e_ _I_n_s_t_r_u_c_t_i_o_n_s_ 9.2 F W X D Format 2a: 0 5 7 9 15 B 1 1 1 1 0 W X I n F Format 2b: 0 5 7 9 10 11 15 B 1 1 1 1 1 W X I n F Format 2c: 0 5 7 9 10 11 15 A B F0 F1 F2 F3 F4 bgw Branch if Greater 1 0 0 0 0 bew Branch if Equal 1 0 0 0 1 blw Branch if Less 1 0 0 1 0 bgb Branch if Greater than Byte 1 0 0 1 1 beb Branch if Equal to Byte 1 0 1 0 0 blb Branch if Less than Byte 1 0 1 0 1 bsz Branch if All Selected Bits are Zero 1 0 1 1 0 bop Branch if Selected Bits have Odd Parity 1 0 1 1 1 Continue instructions as mentioned above, with the suffix "n" added to the mnemonic code. \f 9_._3_ _ _ _ _ _ _ _S_h_i_f_t_-_R_o_t_a_t_e_ _I_n_s_t_r_u_c_t_i_o_n_s_ 9.3 Format 3:: F W X CODE SHIFTS 0 1 2 3 4 5 6 7 8 9 12 15 ror Rotate Right 0 0 0 1 1 1 0 0 rol Rotate Left 0 0 1 1 1 1 0 0 lsr Logical Shift Right 0 1 0 1 1 1 0 0 lsl Logical Shift Left 0 1 1 1 1 1 0 0 asr Arithmetic Shift Right 1 1 0 1 1 1 0 0 nrr No carry rotate right 1 0 0 1 1 1 0 0 nrl No carry rotate left 1 0 1 1 1 1 0 0 Undefined 1 1 1 1 1 1 0 0 9_._4_ _ _ _ _ _ _ _I_n_t_e_r_l_e_v_e_l_ _I_n_s_t_r_u_c_t_i_o_n_s_ 9.4 Format 3a: F W X CODE N 0 5 7 9 11 15 Format 3c: F W X CODE DUMMY 5 7 9 11 N < 124 8 15 ild Interlevel Load 1 1 0 1 0 ist Interlevel Store 1 1 0 1 1 Not used 1 1 1 0 1 Format b 1 1 1 1 0 Format c 1 1 1 1 1 \f 9_._5_ _ _ _ _ _ _ _I_n_p_u_t_/_O_u_t_p_u_t_ _I_n_s_t_r_u_c_t_i_o_n_s_ 9.5 Format 3: F W X M Dev. No 0 5 7 9 11 15 F0 F1 F2 F3 F4 rsc Read Status and Compare 0 1 1 1 0 0 0 wcc Write Control and Clear 0 1 - 1 1 0 0 1 rwc Read Word and Compare 0 0 1 1 0 0 0 rbb Read Block of Bytes 1 0 1 1 0 0 0 rbw Read Block of Words 1 1 1 1 0 0 0 wwc Write Word and Compare 0 0 1 1 0 0 1 wbb Write Block of Bytes 1 0 1 1 0 0 1 wbw Write Block of Words 1 1 1 1 0 0 1 \f F_ 1_0_._ _ _ _ _ _ _ _S_W_I_T_C_H_E_S_ _A_N_D_ _I_N_D_I_C_A_T_O_R_S_ 10. 1_0_._1_ _ _ _ _ _ _P_r_o_c_e_s_s_o_r_ _F_r_o_n_t_ _P_a_n_e_l_ 10.1 The front panel of the processor board contains five switches, five indicators, and a jack. 1_0_._1_._1_ _ _ _ _S_w_i_t_c_h_e_s_ 10.1.1 All switches are rotary switches with 16 positions, indicated by the hexadecimal numbers 0 to F. The switches are set by means of a screwdriver. \f 1_0_._1_._1_._1_ _ _B_u_s_ _S_w_i_t_c_h_e_s_ 10.1.1.1 The four switches marked BUS are used to supply the processor with data. There is a switch for bits 0 to 3, 4 to 7, 8 to 11, and 12 to 15. 1_0_._1_._1_._2_ _ _D_e_b_u_g_ _M_o_d_e_ _S_w_i_t_c_h_ 10.1.1.2 The switch marked MODE is used to select the baud rate for the debug console (see section 10.1.3) and to control the execution of the built-in test programs as follows: M_ S_e_t_t_i_n_g_ B_a_u_d_ _R_a_t_e_ T_e_s_t_ _P_r_o_g_r_a_m_ _E_x_e_c_u_t_i_o_n_ 0 , 8 300 bps run test loop 1 , 9 1200 bps run test loop 2 , A 300 bps skip test 3 , B 1200 bps skip test 4 , C 300 bps run test no loop 5 , D 1200 bps run test no loop 6 , E 300 bps skip test P_ 7 , F 1200 bps skip test Switch state 8-F same as 0-7, but with blocked terminal mode ("BELL" will not switch to Debug). E_x_p_l_a_n_a_t_i_o_n_ run test The programs are executed whenever the autoload button is pressed. skip test The programs are not executed. loop The programs are executed in an endless loop. no loop The programs are executed once. The test programs are described in the next subsection. \f 1_0_._1_._2_ _ _ _ _I_n_d_i_c_a_t_o_r_s_ 10.1.2 DI D_i_s_a_b_l_e_d_ _I_n_t_e_r_r_u_p_t_ This lamp, when lit, indicates that the processor is running in the disabled interrupt mode. OP O_p_e_r_a_t_i_o_n_ This lamp, when lit, indicates that the processor is running normally; when it is extinguished, the processor is stopped. LP L_e_f_t_ _P_a_r_i_t_y_ _E_r_r_o_r_ This lamp, when lit, indicates that a parity error has been detected during a memory read in the left byte. This lamp can be extinguished only by a power restart or autoload. RP R_i_g_h_t_ _P_a_r_i_t_y_ _E_r_r_o_r_ This lamp, when lit, indicates that a parity error has been detected during a memory read in the right byte. This lamp can be extinguished only by the power restart or autoload. TM T_e_s_t_ _M_o_d_e_ This lamp, when lit, indicates that the processor is exe- cuted the built-in test programs. T_h_e_ _O_P_,_ _L_P_,_ _R_P_,_ _a_n_d_ _T_M_ _l_a_m_p_s_ _i_n_d_i_c_a_t_e_ _t_h_e_ _n_u_m_b_e_r_ _o_f_ _t_h_e_ _t_e_s_t_ p_r_o_g_r_a_m_ TM is the least significant bit in the test program number. \f If an error is detected by a test program, one of the following messages is displayed on the debug console: 1 8_0_8_5_ _C_o_m_m_u_n_i_c_a_t_i_o_n_ _T_e_s_t_ Message: err 1 <dummy' <dummy' y<5d' gives 6 bytes transmitted data. y<71' gives 6 bytes received data. 3 C_o_m_m_u_n_i_c_a_t_i_o_n_ _T_e_s_t_ Microprogram request to the debug microprocessor. Message: none (i_n_d_i_c_a_t_o_r_s_ _o_n_l_y_). 5 W_o_r_k_i_n_g_ _R_e_g_i_s_t_e_r_ _A_d_d_r_e_s_s_ _T_e_s_t_ Message: err 5 <address' <data wanted' w<address' gives data read. 7 W_o_r_k_i_n_g_ _R_e_g_i_s_t_e_r_ _D_a_t_a_ _T_e_s_t_ Message: err 7 <address' <data wanted' 9 M_e_m_o_r_y_ _A_d_d_r_e_s_s_ _T_e_s_t_ Message: err 9 <o_f_f_s_e_t_ address' <data wanted' y<40' gives memory module number. m<module.offset' gives data read. B M_e_m_o_r_y_ _D_a_t_a_ _T_e_s_t_ Pattern 5555. Message: err b <offset address' <data wanted' y<40' gives memory module number. m<module.offset' gives data read. D M_e_m_o_r_y_ _D_a_t_a_ _T_e_s_t_ Pattern AAAA. Message: err d <offset address' <data wanted' y<40' gives memory module number. m<module.offset' gives data read. \f 1_0_._1_._3_ _ _ _ _J_a_c_k_ 10.1.3 The jack, marked CONSOLE, is a 9-pin CANNON jack for connection of a debug console (a_ _T_e_l_e_t_y_p_e_ _c_o_m_p_a_t_i_b_l_e_ _d_e_v_i_c_e_,_ _c_o_m_p_a_t_i_b_l_e_ _w_i_t_h_ R_C_8_2_2_). The console must have the following characteristics: 8 data bits per character No parity bit 1 stop bit 300 or 1200 bps. The electrical/logical characteristics of the signals in the jack must conform to Recommendation V.24. The signals are as follows: P_i_n_ _N_o_. S_i_g_n_a_l_ _N_a_m_e_ 1 +5V 2 +12V 3 received data 4 -12V 5 0V 6 transmitted data 7 0V 8 (not used) 9 0V 1_0_._2_ _ _ _ _ _ _T_h_e_ _D_e_b_u_g_ _C_o_n_s_o_l_e_ 10.2 1_0_._2_._1_ _ _ _ _A_c_t_i_v_a_t_i_o_n_ 10.2.1 The debug console can be activated at any time (if the mode switch is in the range 0-7) by pressing the BELL key ( CTRL G), without stopping the instruction execution in the PU. \f 1_0_._2_._2_ _ _ _ _D_i_s_p_l_a_y_ _C_o_m_m_a_n_d_s_ 10.2.2 Display commands cause eight words of data to be displayed. These commands are executed in two situations: 1. W_h_e_n_ _a_ _d_i_s_p_l_a_y_ _c_o_m_m_a_n_d_ _i_s_ _e_n_t_e_r_e_d_. Here one can modify the displayed data by entering new data in its place. Pressing the space bar will move the cursor one position to the right, without changing data. A display command is terminated by pressing one of the follo- wing keys: CR Carriage Return terminates the current display command and causes the debug console to await the next command. + Plus terminates the current display command and executes a display command for the succeeding eight words (M,Y) or the eight registers on the succeeding level (W). - Minus terminates the current display command and executes a display command for the preceding eight words or the eight registers on the preceding le- vel. ESC Terminates current command without changing any- thing. (<ESC' is printed on the console). 2. W_h_e_n_ _a_ _c_o_n_t_r_o_l_ _c_o_m_m_a_n_d_ _i_s_ _t_e_r_m_i_n_a_t_e_d_, the last executed dis- play command is repeated, but no modification of the displayed data is allowed. Here the debug console awaits the next com- mand. The following display commands are available: (in capital letters): M <gadr' M_o_d_i_f_y_ _m_e_m_o_r_y_ Displays the contents of the 8 memory locations starting at <gadr'. \f W <reg' M_o_d_i_f_y_ _w_o_r_k_i_n_g_ _r_e_g_i_s_t_e_r_s_ Displays the contents of the 8 working registers starting at <reg'. L <level' M_o_d_i_f_y_ _w_o_r_k_i_n_g_ _r_e_g_i_s_t_e_r_s_ Displays the level number and contents of the 8 working registers belonging to <level'. Y <yadr' M_o_d_i_f_y_ _c_o_n_t_r_o_l_ _m_i_c_r_o_p_r_o_c_e_s_s_o_r_ _R_A_M_ Displays the contents of the 8 control micropro- cessor RAM locations starting at <yadr'. 1_0_._2_._3_ _ _ _ _C_o_n_t_r_o_l_ _C_o_m_m_a_n_d_s_ 10.2.3 The following control commands are available (in capital letters): R R_u_n_ Causes the PU to start instruction execution. S I_n_s_t_r_u_c_t_i_o_n_ _s_t_o_p_ The PU will execute one instruction, stop, and re- activate the debug console. S <steps' M_u_l_t_i_-_i_n_s_t_r_u_c_t_i_o_n_ _s_t_e_p_ The PU will execute <steps' instructions, stop, and reactivate the debug console. C I_n_s_t_r_u_c_t_i_o_n_ _s_t_e_p_ _o_n_ _c_u_r_r_e_n_t_ _l_e_v_e_l_ Like S, but on the current level if possible. C <steps' M_u_l_t_i_-_i_n_s_t_r_u_c_t_i_o_n_ _s_t_e_p_ _o_n_ _c_u_r_r_e_n_t_ _l_e_v_e_l_ Like S <steps', but on the current level if possible. \f 1_0_._2_._4_ _ _ _ _C_o_m_m_a_n_d_ _P_a_r_a_m_a_t_e_r_s_ 10.2.4 All numbers entered and displayed are hexadecimal. At any time the entering of an empty command (i.e. CR) will cause the previous command to be repeated. A global address <gadr' is entered in one of the two following formats: <base' : <disp' : <disp' where <base' is the leftmost 16 bits of the 32-bit address. Always 0000 (Hex) for RC3503. <disp' is the displacement within the selected memory module, i.e. the rightmost 16 bits of an address. If the second format ( : <disp' ) is employed, the last entered base is echoed and used. <STEP' must always consist of 4 HEX digits. 1_0_._3_ _ _ _ _ _ _I_n_s_t_a_l_l_a_t_i_o_n_ 10.3 Console jack (CBL 312 for RC822) (CBL 588 for RC831) TTY compatible device (RC822 or RC831) \f F_ 1_1_._ _ _ _ _ _ _ _I_N_S_T_R_U_C_T_I_O_N_ _E_X_E_C_U_T_I_N_G_ _T_I_M_E_S_ 11. In the following sections the following mnemonics mean: NC (normal cycle) = 217 nS MR (memory read cycle) = 434 nS MW (memory write cycle) = 651 nS 1_1_._1_ _ _ _ _ _ _A_d_d_r_e_s_s_ _C_a_l_c_u_l_a_t_i_o_n_ _T_i_m_e_s_ _(_A_T_)_ 11.1 This scheme describes the execution times (AT) for the address calculation dependent of the format and the index register selected, and if immediate addressing is selected. These times must be added to the times listed below for the instructions to get the total time of an instruction. Instruction execution time: T = AT + ET. AT FORMAT 1 & 2 FORMAT 3 a b c M_m_m_ X = X0 4NC+1MR 8NC+2MR cycles I = 0 P_p_p_ X <' X0 4NC+1MR 4NC+1MR 8NC+2MR M_m_m_ X = X0 2NC 2NC 5NC+1MR cycles I = 1 P_p_p_ X <' X0 2NC 5NC+1MR cycles FORMAT 3 6NC+1MR cycles Note 1: All times in the scheme are for Disable mode. If an enable and fetch on same level add 1NC. If an enable and fetch on another level add 2NC. \f 1_1_._2_ _ _ _ _ _ _E_x_e_c_u_t_i_o_n_ _T_i_m_e_s_ _(_E_T_)_ 11.2 This scheme describes the times which must be added to the ADDRESS CALCULATION TIMES (AT) to get the exact execution time for an instruction. FORMAT 1 & 2 ldr 2NC ldc 4NC ldi 5NC + 1MR M_m_m_ I = 1 4NC str P_p_p_ I = 0 8NC + 1MW sti 7NC + 1MW M_m_m_ X <' X0 5NC xsr P_p_p_ X = X0 8NC + 1MW ldb 6NC stb 7NC + 1MW add 4NC sub 4NC and 3NC lor 3NC xor 3NC lce 9NC rsw 9NC Move 19NC + 1MR + 1MW If count is specified 2NC must be added. bgw 6NC For branch and continue bew 3NC instructions the same timing is blw 6NC valid, if the instruction, however, bgb 12NC branches, 5NC + 1MR must be added. beb 9NC blb 12NC bsz 3NC bop 4NC \f FORMAT 3 ror rol lsr 9NC Add 1NC per shift lsl asr ild 8NC ist 8NC rsc 27NC NOTE wcc - 1,6NC rwc 27NC NOTE brr - 30NC NOTE rbw - 30NC NOTE wwc - 14NC wbb - 22NC wbw - 22NC Note: add (2t + 4t + nt) uSec., where t is the bit length of the selected device and n is the number of bits transferred. \f i T_A_B_L_E_ _O_F_ _C_O_N_T_E_N_T_S_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _P_A_G_E_ 1. INTRODUCTION ........................................... 1 2. PROCESSING UNIT ........................................ 3 3. MEMORY ................................................. 4 3.1 EPROM/ROM ......................................... 4 3.2 Dual Port RAM ..................................... 4 3.2.1 On-Board Access to DPRAM ................... 5 3.2.2 Multibus Access to DPRAM ................... 5 4. I/O DEVICES ............................................ 7 4.1 Serial I/O Interface .............................. 7 4.2 DMA Controller .................................... 8 4.3 Interrupt Controllers ............................. 8 4.4 iSBX Connectors ................................... 9 4.5 Identification Switches ........................... 11 5. MULTIBUS INTERFACE ..................................... 12 \f ii \f 1_._ _ _ _ _ _ _ _ _I_N_T_R_O_D_U_C_T_I_O_N_ 1. The CPU601 is a complete 16-bit microprocessor system with 8086 CPU, 80130 OS firmware, RAM, EPROM, interrupt logic, DMA con- troller, serial communications interface, iSBX connectors and Multibus interface on a single printed circuit board. The board, which measures 6.74x12.00 inches (171.5x304.8 mm), may be plugged into a standard Multibus or IEEE P796 BUS backplane. Fig. 1 shows the most important components and the data paths of the CPU601. \f F_ Figure 1: CPU601 block diagram. \f F_ 2_._ _ _ _ _ _ _ _ _P_R_O_C_E_S_S_I_N_G_ _U_N_I_T_ 2. The processing power for the CPU601 is delivered by an iAPX 86/ 30, which is a combination of a 16-bit 8086 CPU and an 80130 Operating System Firmware (OSF) component. The 80130 OSF contains 16 k bytes ROM, a system timer, a delay timer, a baud rate generator and a programmable interrupt con- troller with 8 interrupt request inputs. The 80130 ROM contains code for a set of 35 operating system primitives, which are com- patible with the Intel RMX86 operating system. The 8086 CPU and the 80130 OSF operate at 8 MHz clock frequency, corresponding to a 125 ns clock cycle period. The number of wait states, which are inserted when on board ROM, RAM and I/O devices are accessed are listed below. A_C_C_E_S_S_ _T_O_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _W_A_I_T_ _S_T_A_T_E_S_ 80130 ROM 0 EPROM 0 RAM 1 I/O devices 0 iSBX modules 1 The processing unit (iAPX 86/30) may be expanded with an optional 8087 Numeric Data Processor (NDP). For the present the 8087 NDP is only available in a 5 MHz version. The processor clock fre- quency must therefore be reduced from 8 MHz to 5 MHz, if the 8087 NDP is installed. \f F_ 3_._ _ _ _ _ _ _ _ _M_E_M_O_R_Y_ 3. The CPU601 on board memory consists of 16 to 64 k bytes of EPROM/ ROM, 16 k bytes of ROM located in the 80130 OSF chip and 128 or 256 k bytes of Dual Port RAM (DPRAM). 3_._1_ _ _ _ _ _ _ _E_P_R_O_M_/_R_O_M_ 3.1 The CPU601 board is provided with two 28-pin sockets which can accept the following three types of EPROM (or ROM) with Intel/ JEDEC standard pinout: 8kx8 (2764), 16kx8 (27128) and 32kx8 (27256). The highest memory addresses in the 1 M byte memory address space are used for EPROM addressing. Addresses for the 80130 ROM are located immediately below the EPROM addresses. Two switches are used to select the address range for EPROM and 80130 ROM as shown in the table below. DEVICE CAPACITY ADDRESS RANGE _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _8_0_1_3_0_ _R_O_M_ _ _ _ _ _ _ _E_P_R_O_M_ _ _ _ _ _ _ _ _ 2764 16 k bytes F8000 - FBFFF FC000 - FFFFF 27128 32 k bytes F4000 - F7FFF F8000 - FFFFF 27256 64 k bytes EC000 - EFFFF F0000 - FFFFF 3_._2_ _ _ _ _ _ _ _D_u_a_l_ _P_o_r_t_ _R_A_M_ 3.2 The CPU601 is provided with a dual port RAM (DPRAM), which is ac- cessible from the on-board processors and from the Multibus. The DPRAM array consists of 2x18 64kx1-bit dynamic RAM devices, 2x16 devices for data and 2x2 devices for parity. This provides the board with a DPRAM capacity of 256 k bytes. If only half of the RAM devices are mounted the DPRAM capacity is 128 k bytes. The design of the dynamic RAM controller allows the 64kx1-bit RAM de- vices to be replaced with 256kx1-bit devices, when they become available. This will provide the CPU601 with a DPRAM capacity of up to 1 M bytes in the future. \f The DPRAM is provided with parity check, 1 parity bit per byte. If an error is detected, the parity control logic generates an interrupt request, which is connected to the NMI input of the 8086 CPU. The interrupt request may be disabled by means of a mask bit in a control register. Two LED's on the board indicate parity errors for high and low bytes. Note that the parity error interrupt also can occur, when the DPRAM is accessed from the Multibus. 3_._2_._1_ _ _ _ _ _O_n_-_B_o_a_r_d_ _A_c_c_e_s_s_ _t_o_ _D_P_R_A_M_ 3.2.1 When the DPRAM is accessed from the on-board CPU and DMA control- ler, it is located from address 0 and up in the 1 M byte memory address space. The address range for 128 k and 256 k DPRAM sizes are shown below. R_A_M_ _S_I_Z_E_ _ _ _ _ _ _A_D_D_R_E_S_S_ _R_A_N_G_E_ _ _ 128 k bytes 00000 - 1FFFF 256 k bytes 00000 - 3FFFF 3_._2_._2_ _ _ _ _ _M_u_l_t_i_b_u_s_ _A_c_c_e_s_s_ _t_o_ _D_P_R_A_M_ 3.2.2 The DPRAM address decoder can be strapped to decode a 24-bit (16 M bytes) or a 20-bit (1 M bytes) Multibus memory address. When 20-bit addressing is selected, the 4 unused (most significant) address bits are forced to 0. Part of the DPRAM may be configured as private resource, pro- tected from Multibus access. The Multibus accessible part of the DPRAM may be placed within 1 of 64 256 k byte segments in the 16 M byte Multibus memory address space. Offset from start of the selected 256 k byte segment must be on a 32 k byte boundary. The Multibus address range for access to the DPRAM may be selected as shown below. \f DPRAM size: 128 or 256 k bytes Segment base: 0 through 63x256 k bytes Private size: 0, 32, 64, 96, 128, 160, 192, 256 k bytes Offset: 0 through 7x32 k bytes The following example shows the addresses for both on-board and Multibus access to the DPRAM. DPRAM size: 256 k bytes Segment base: 3x256 k bytes Private size: 64 k bytes Offset: 0 O_N_-_B_O_A_R_D_ _A_D_D_R_._ M_U_L_T_I_B_U_S_ _A_D_D_R_._ _ _ _ _ _ _ _ _ _ _ _D_P_R_A_M_ _ _ _ _ _ _ _ _ _ _ _ 3FFFF 0EFFFF SHARED 192 k bytes _ _ _ _ _ _ _ _ _ _ _ _ 0_C_0_0_0_0_ _ M_m_m_ PRIVATE No access P_p_p_ 0_0_0_0_0_ _ _ _ _6_4_ _k_ _b_y_t_e_s_ _ \f F_ 4_._ _ _ _ _ _ _ _ _I_/_O_ _D_E_V_I_C_E_S_ 4. The following sections give a short description of the on-board I/O devices. For a more detailed description is referred to the relevant datasheets. The I/O devices are located in the I/O ad- dress space and can only be accessed by the on-board processor. 4_._1_ _ _ _ _ _ _ _S_e_r_i_a_l_ _I_/_O_ _I_n_t_e_r_f_a_c_e_ 4.1 A programable communications interface using an 8251A Universal Synchonous/Asynchronous Receiver/Transmitter (USART) is contained on the CPU601 board. For asynchronous operation of the 8251A, the baud rate generator (timer 2) in the 80130 OSF device is used as clock source. For synchronous operation the 8251A will normally be supplied with receive and transmit clocks from external equip- ment (modem). A strap field is used to select external clock sources. Optionally the transmit clock may be delivered by the CPU601 (strap selection). The interface between the 8251A and the external equipment fol- lows the CCITT V.24/V.28 recommendations. The following signals are supported by the CPU601: C_I_R_C_U_I_T_ _N_O_ _ _ _ _ _ _ _ _ _ _ _ _S_I_G_N_A_L_ _N_A_M_E_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 102 Signal ground 103 Transmitted data 104 Received data 105 Request to send 106 Ready for sending 107 Data set ready 108/2 Data terminal ready 109 1) Data channel received line signal detector 113 Transmitter signal element timing (DTE) 114 Transmitter signal element timing (DCE) 115 Receiver signal element timing (DCE) 125 1) Calling indicator 1) These signals are not supported by the 8251A. They are avail- able through a separate input port. \f 4_._2_ _ _ _ _ _ _ _D_M_A_ _C_o_n_t_r_o_l_l_e_r_ 4.2 The CPU601 contains an 8237-2 DMA controller, which supports DMA data transfers between iSBX controller modules and on-board mem- ory. The DMA controller may e.g. be used to support the iSBX218 flexible disk controller. The DMA controller can only be used to support 8-bit I/O devices. The 16-bit address range of the 8237-2 has been extended to 20- bits (1 M byte) by means of a 4-bit page register. This divides the 1 M byte memory address space into 16 64 k byte pages. A DMA block cannot cross a 64 k byte boundary. The maximum block size is 64 k bytes. The DMA controller uses the local CPU bus for data transfers. When the DMA controller is operated in the block transfer mode, (for maximum throughput), it will hold the local bus for the time required to transfer a block of data. During this time the CPU cannot access memory and I/O. This drawback may be avoided by using the single transfer mode at the expense of throughput. The approximate DMA transfer rates are: Block transfer mode: 1.25 /byte, 800 K bytes/sec. Single transfer mode: 2.25 /byte 4_._3_ _ _ _ _ _ _ _I_n_t_e_r_r_u_p_t_ _C_o_n_t_r_o_l_l_e_r_s_ 4.3 Interrupt requests from on-board devices and from the Multibus interrupt lines are handled by two programable interrupt control- lers and by the Non Maskable Interrupt (NMI) request input of the 8086. This gives a total of 16 interrupt request inputs. The in- terrupt controller contained in the 80130 OSF operates as master controller and an 8259A interrupt controller operates as a slave controller. The interrupt request sources are assigned to the interrupt inputs as shown in the table below. \f I_N_T_E_R_R_U_P_T_ _I_N_P_U_T_ _ _ _ _ _ _I_N_T_E_R_R_U_P_T_ _S_O_U_R_C_E_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ NMI Power fail and RAM parity error Master Level 0 Systick timer (80130 OSF) Master Level 1 Reserved (80130 delay timer) Master Level 2 8251A USART receiver Master Level 3 8251A USART transmitter Master Level 4 Reserved for 8287 NDP Master Level 5 8259A slave interrupt controller Master Level 6 Multibus INT6 2) Master Level 7 Multibus INT7 2) Slave Level 0 iSBX1 - MINTR0, iSBX1 - MINTR1 1) Slave Level 1 iSBX2 - MINTR0, iSBX2 - MINTR1 1) Slave Level 2 iSBX1 - MINTR1, Multibus INT0 1) Slave Level 3 iSBX2 - MINTR1, Multibus INT1 1) Slave Level 4 Multibus INT2 Slave Level 5 Multibus INT3 Slave Level 6 Multibus INT4 Slave Level 7 Multibus INT5 1) Interupt source is selected by jumper. 2) These inputs support bus vectored interrupts. 4_._4_ _ _ _ _ _ _ _i_S_B_X_ _C_o_n_n_e_c_t_o_r_s_ 4.4 The CPU601 contains two iSBX connectors (J3 and J4) for on board I/O expansion by means of iSBX modules. The connectors will ac- cept 1 single (J3) and 1 double (J4) or 2 single (J3, J4) iSBX modules. Both 8-bit and 16-bit (jumper selection) modules are supported by the on board 8086 CPU. The 8237 DMA controller sup- ports only 8-bit iSBX modules. Up to two DMA channels may be as- signed to each iSBX connector. Fig. 2 shows the iSBX connector pin assignments. Apart from the signals MPST, MINTR1, MINTR0, MWAIT, MCS1, MCS0, TDMA, OPT1, OPT0, MDACK and MDRQT are all signals common to the two connect- ors. \f F_ P_I_N_ _ _ _M_N_E_M_O_N_I_C_ _ _ _C_P_U_6_0_1_ _S_O_U_R_C_E_/_D_E_S_T_I_N_A_T_I_O_N_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1 +12V +12 volts 3 GND Signal Ground 5 MRESET Master reset 7 MA2 Address bit 3 9 MA1 Address bit 2 11 MA0 Address bit 1 13 IOWRT/ Advanced I/O write command 15 IORD/ I/O read command 17 GND Signal Ground 19 MD7 Data bit 7 21 MD6 Data bit 6 23 MD5 Data bit 5 25 MD4 Data bit 4 27 MD3 Data bit 3 29 MD2 Data bit 2 31 MD1 Data bit 1 33 MD0 Data bit 0 35 GND Signal ground 37 MDE Data bit E 39 MDC Data bit C 41 MDA Data bit A 43 MD8 Data bit 8 2 -12V -12 volts 4 +5V +5 volts 6 MCLK 9.8304 MHz clock signal 8 MPST/ Chip select decoder input 10 12 MINTR1 Interrupt controller input 14 MINTR0 Interrupt controller input 16 MWAIT/ Wait state logic input 18 +5V +5 volts 20 MCS1/ Chip select decoder output 22 MCS0/ Chip select decoder output 24 - Reserved 26 TDMA 8237 EOP/ input (jumper) 28 OPT1 Function selected by jumpers 30 OPT0 Function selected by jumpers 32 MDACK/ 8237 DMA acknowledge 34 MDRQT 8237 DMA request 36 +5V +5 volts 38 MDF Data bit F 40 MDD Data bit D 42 MDB Data bit B 44 MD9 Data bit 9 Figure 2: iSBX connector pin assignments. \f The function of the option signals OPT1 and OPT0 can be selected as described below. OPT1: 8237 DMA acknowledge (additional channel). No connection. OPT0: 8237 DMA request (additional channel). 8237 Terminal Count (TC) output. No connection. 4_._5_ _ _ _ _ _ _ _I_d_e_n_t_i_f_i_c_a_t_i_o_n_ _S_w_i_t_c_h_e_s_ 4.5 The CPU601 contains 2x8 switches, which can be sensed through an input port. The switches can e.g. be used to provide the CPU601 with an address, when it is used in distributed systems. \f F_ 5_._ _ _ _ _ _ _ _ _M_U_L_T_I_B_U_S_ _I_N_T_E_R_F_A_C_E_ 5. The CPU601 interfaces directly to the standard Intel Multibus and the IEEE P796 BUS. All adddress (24-bits), data (16-bits) and control signals conform to the specifications for these busses. The CPU601 provides full multimaster arbitration control logic, which allows up to 16 masters to share the bus using a parallel priority resolution technique. The more simple serial priority resolution technique allows up to 3 masters to share the bus. The CPU601 generates and recognizes the Multibus 'LOCK' signal. When asserted, the LOCK signal prevents a CPU from accessing its on board dual port RAM. When the on board CPU generates an address outside the on board memory or I/O address ranges the CPU601 uses the Multibus to ac- cess the addressed location. When the CPU601 is Multibus master, the contents of the 4-bit Multibus page register are used as the 4 most significant address bits (14, 15, 16 and 17 hex). The low- er 20 bits of the address are generated directly by the on board 8086 CPU. The CPU601 is able to generate interrupt request on any of the 8 Multibus interrupt lines by means of a programmable output port. \f ET TILBUD TIL ALLE RC BRUGERE Regnecentralens træningscenter - beliggende på hovedsædet i Ballerup udenfor København - tilbyder et omfattende trænings- og undervisningsprogram indenfor områderne datamaskinel og -program- mel. Hos RC ophører kundeservicen ikke med underskrivningen af salgskontrakten. Som led i den løbende service vil kunderne finde træningscenterets kursusprogram - et vægtigt tilbud til alle brugere af RC udstyr. \f HØJT KVALIFICEREDE INSTRUKTØRER Programmører og teknikere fra hele verden undervises på trænings- centeret. Der er altid en række af de nyeste datateknologiske emner på programmet. Det er således store krav, der stilles til instruktørerne, både med hensyn til omfang og kvalitet. De fleste instruktører er da også uddannet på universitetsniveau forud for deres videregående edb-uddannelse. OMFATTENDE KURSUSPROGRAM Det er mindst lige så vigtigt, at nye brugere får en grundig introduktion til maskinel og programmel, som det er, at undervise i specialiserede discipliner indenfor datamatikken. Kursuspro- grammet omfatter således generelle kurser for dem, der ikke tidligere har beskæftiget sig med edb, - eller dem, der ønsker at lære noget om metoder. Desuden kurser, der er rettet mod den fundamentale viden omkring programmering; samt kurser, der fokuserer specielt på datamat-teknik. Sidstnævnte programpunkt henvender sig især til elektronik-uddannede, der ikke tidligere har beskæftiget sig direkte med edb. Hertil kommer specielle kurser og seminarer, der dækker undervisnings- og træningsbehovet indenfor avancerede edb-anvendelsesområder, eksempelvis datanetværksstrukturer og -applikationer. LØBENDE KUNDESERVICE Som tidligere nævnt ophører kundeservicen ikke med underskriv- ningen af salgskontrakten. Det er således muligt idag at deltage i kurser, der vedrører maskinel og programmel som blev introdu- ceret for adskillige år siden. Denne kontinuitet i undervisnings- programmet værdsættes i høj grad af brugere, der ansætter nye edb-medarbejdere - hvadenten disse skal arbejde som programmører eller operatører. \f MODERNE KURSUSFACILITETER Træningscenteret er indrettet i rummelige og venlige omgivelser. Maskinparken omfatter alle typer af udstyr som RC fremstiller og markedsfører. Kursusmaterialet - og undervisning i klasselokalet - er dels engelskproget, dels dansksproget; det afhænger af det enkelte kursus og fremgår af kursusprogrammet. I undervisningen anvendes de nyeste metoder i instruktionsteknik; desforuden be- tragtes en virklighedstro arbejdsmåde som særdeles vigtig - in- struktørstaben pålægges således jævnligt arbejdsopgaver "i marken" for derigennem at bevare den praktiske sans for bruger- problemer og for en effektiv og tilfredstillende løsning af dem. INTERN UNDERVISNING Det faktum, at træningscenteret også er ansvarlig for den interne undervisning og træning af RC>s danske og udenlandske teknikere, borger ligeledes for instruktørernes færdigheder. Det primære sigte med de interne kurser er en stadig effektivisering af ved- ligeholdelsesstrategier samt opfølgning omkring den løbende pro- duktudvikling. \f ÅRLIGT OMFANG Programlægningen i træningscenteret baserer sig til enhver tid på 10 heltidsansatte instruktører, der arbejder cirka 1000 person-dage direkte med kunde-træning svarende til 150 trænings- kurser. En belastningsgrad der sikrer, at instruktørerne får optimal mulighed for kursusforberedelse samt personlig træning og uddannelse. Træningscenterets kursusprogram revideres og udsendes hvert halvår og kan rekvireres hos RC. RCSL 42-i1567 \f RC868 Typehjulsprinter . KVALITETSUDSKRIFTER - TEKSTBEHANDLING . UDSKIFTELIGE TYPEHJUL . ALSIDIGE FACILITETER . NYUDVIKLET DESIGN . FASTE FORMATINDSTILLINGER - ELLER PROGRAMSTYRET . BENYTTES SAMMEN MED RC850 OG RC700 SYSTEMER . TRAKTOR OG ARKFØDER SOM EKSTRAUDSTYR \f GENERELT RC868 typehjulsprinteren byder på udskrifter med samme skriftkva- litet som kendes fra de bedste skrivemaskiner. Typehjul med fuldt formede tegn samt styring af udskriftsprocessen med mikroproces- sor, sikrer udskrifter i egen særklasse. Udskiftelige typehjul og alsidige, programstyrede faciliteter klarer de mest krævende op- gaver. Et helt nyudviklet design ligger bagved: enkelt, pålide- ligt og slidstærkt - få vedligeholdelseskrav. RC868 kan tilkobles RC850 og RC700 systemer og er især velegnet i forbindelse med tekstbehandlingsopgaver på disse anlæg. Som ekstraudstyr fås: TF219 traktor og TF220 arkføder, der kan indstilles til både høj- og tværformat. KARAKTERISTIKA RC868 skriver serielt med en hastighed på 55 tegn pr. sek. An- slagskraft og farvebåndsfremføring reguleres efter tegnstørrelse, automatisk eller programmeret. Når printerens automatik benyttes, indstilles alle funktioner bekvemt på betjeningspanelet; ved pro- grammeret styring kan værtssystemet direkte kontrollere facilite- ter såsom: fed-skrift, skygge-skrift og forskellige understreg- ningsmåder - for ikke at nævne den absolutte kontrol med papir- og typehjulsbevægelserne, der faktisk tillader tegnearbejde. Typehjulet kan nemt skiftes af brugeren. Standard typehjul med 96 tegn findes i et stort udvalg af skriftyper og nationale tegnsæt. Udskriftsformatet kan vælges med faste indstillinger for tegn- og linieafstand eller kan programstyres på basis af grundbevægelser- ne. Printeren kan benytte enkeltark såvel som kanthullet papir i ba- ner. Enkeltark fremføres af skrivevalsen og kan ilægges automa- tisk med arkføderen. Kanthullet papir i baner fremføres af trak- toren. Både traktor og arkføder kan på-/afmonteres uden værktøj, idet forberedelser og justeringer blot skal udføres første gang. Snaplåsholder til farvebåndskassette samt farvebånd-/papir-slut registrering er andre faciliteter, der gør betjeningen let og ligetil. \f SPECIFIKATIONER Skrivehastighed: 55 tegn/sek. - normal bladet tekst. Fremføringshastighed: To-vejs bevægelser: Typehjul: 40 tommer/sek., maks. Papir: 5 tommer/sek., maks. Skrivemåde: Fuldt formede tegn på typehjul. An- slagskraft efter tegnstørrelse. Seriel udskrivning. Programstyrede udskriftsfaciliteter. Tegnsæt: Udskiftelige typehul med 96 tegn. Forskellige skrifttyper og nationale tegnsæt. Udskriftsformat: Horisontalt: - faste indstillinger: 10-12-15 tegn/tomme (svarende til 132-158-198 skrivepositioner). - programstyret: Grundbevægelse: 120 delinger/tomme; mask. bevægelse: 13,2 tommer. Vertikalt: - faste indstillinger: 3-6-8 linier/tomme - programstyret: Grundbevægelse: 48 delinger/tomme *); maks. bevægelse: 21,3 tommer. *) kan øges til 144 delinger/tomme. Papirfremføring: Enkeltark: friktionsvalse; automa- tisk ilægning ved brug af arkføder (TF220). Papirbane (kanthullet): traktor (TF219). Papirtype: Enkeltark eller kanthullet papir i baner. Bredde, maks.: 15 tommer (arkføder: 12 tommer). Formatlæng- de: 3-3,5-4-5,5-6-7-8-8,5-11-11 2/3-12-14 tommer (trinvis indstil- bar). Multi-copy indstilling. Farvebånd: Snaplås-kassette; bånd-slut føler; automatisk eller programstyret fremføring efter tegnstørrelse. \f Kontakter/indikatorer: RESET, CARRIER DETECT, READY, COMM ERROR, LINESPACE, PITCH, WPS ON/OFF, SET TOF, FORM LENGTH, FORM FEED, PAUSE. Værtsmaskinetilslutning: CCITT V.24 (RS 232 C). Kabellængde: 5 meter. Konfigurationstilpasning med interne kontakter. Strømforsyning: 220 V AC, 50 Hz, 150 W Temperatur, omg.: 10-40C Luftfugtighed: 10-90% RH, ikke-kondenserende Varmeafgivelse: 540 kJ/t (130 kcal/t) Montage: Bordmodel DIMENSIONER Højde: 17,2 cm Bredde: 61,7 cm Dybde: 42,6 cm Vægt: 20,5 kg RCSL Nr. 42-i2095 \f \f «eof»