WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Electronic computer with equipment for debugging operative programs    
United States Patent3987420   
Link to this pagehttp://www.wikipatents.com/3987420.html
Inventor(s)Badagnani; Guido (Segrate (Milan), IT)
AbstractApparatus is provided for debugging a utility program without material increase in the memory capacity required. Such apparatus performs the debugging functions by using only the input-output devices as the keyboard, the console, the display, the M.C. reader which normally equip the computer. Actuation of a correction key activates the debugging program and interrupts operation of the utility program. The debugging program may be stored in a reserved portion of a ROM, or transferred into a predetermined storage area from magnetic card storage. This area is predetermined not to hold information significant to resumption of the utility program under test. A search is then made of the utility program, e.g., by addresses of the individual instructions, for the erroneous instruction. Upon discovery thereof, a correct instruction is keyed in directly from the keyboard to replace the erroneous instruction. The debugging program records this correct instruction at the approriate addressed location in memory.



 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 3987420
Electronic computer with equipment for debugging operative programs - US Patent 3987420 Drawing
Electronic computer with equipment for debugging operative programs
Inventor     Badagnani; Guido (Segrate (Milan) Segrate
Owner/Assignee     Ing. C. Olivetti & C., S.p.A. (Ivrea (Turin) Ivrea
Patent assignment
All assignments
Publication Date     October 19, 1976
Application Number     05/648,587
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     January 12, 1976
US Classification     717/131 717/111
Int'l Classification     G06F 003/02 G06F 011/04
Examiner     Zache; Raulfe B.
Assistant Examiner    
Attorney/Law Firm     Schuyler, Birch, Swindler, McKie & Beckett
Address
Parent Case     This is a continuation of application Ser. No. 529,493, filed Dec. 4, 1974.
Priority Data     Dec 28, 1973[IT]70879/73
USPTO Field of Search     340/172.5
Patent Tags     electronic computer equipment debugging operative programs
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
3187321



[0 after 0 votes]
3618028



[0 after 0 votes]
3636521



[0 after 0 votes]
3859635
Watson
708/130
Jan,1975

[0 after 0 votes]
3744034
Paul
711/164
Jul,1973

[0 after 0 votes]
3678466
Spangler
708/130
Jul,1972

[0 after 0 votes]
3585599
Hitt
28/275
Jun,1971

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


What I claim is:

1. An electronic computer with equipment for debugging operative programs comprising:

a first memory for storing instructions and data of said operative programs;

a central unit for processing said programs;

a switching element normally having a first state for defining a first mode of operation of said computer for processing said operative programs and a second state for defining a second mode of operation for processing a debugging program for debugging said operative programs;

a keyboard for entering into said first memory information relating to said operative programs during said first mode of operation;

first means controlled by the switching of said switching element from said first state into said second state to interrupt said first mode of operation and to activate said second mode of operation, second means controlled by the switching of said switching element from said first state to said second state to store the parameters needed to subsequently restart execution of said operative program from the point of interruption,

third means responsive to the second state of said switching element to enable said keyboard to enter into said first memory information to be processed by said debugging program,

fourth means controlled by the switching of said switching element from said second state to said first state and responsive to said stored parameters for automatically restarting said operative program, whereby the switching between said modes of operation does not need any intervention by the operator for the correct restart of the operative program.

2. A computer according to claim 1, wherein said switching element is manually operable.

3. An electronic computer with equipment for debugging operative programs comprising:

a first memory for storing instructions and data of said operative programs;

a central unit for processing said programs;

a switching element normally having a first state for defining a first mode of operation of said computer for processing said operative programs and a second state for defining a second mode of operation for processing a debugging program for debugging said operative programs;

a keyboard for entering into said first memory information relating to said operative programs during said first mode of operation;

a display unit for displaying information relating to said operative programs during said first mode of operation;

first means controlled by the switching of said switching element from said first state into said second state to interrupt said first mode of operation and to activate said second mode of operation;

second means controlled by the switching of said switching element from said first state to said second state to store the parameters needed to subsequently restart execution of said operative program from the point of interruption,

third means responsive to the second state of said switching element to enable said keyboard to enter information to be processed by said debugging program;

fourth means responsive to the second state of said switching element to enable said display unit to display information relating to said debugging program,

fifth means controlled by the switching of said switching element from said second state to said first state and responsive to said stored parameters for automatically restarting said operative program, whereby the switching between said modes of operation does not need any intervention by the operator for the correct restart of the operative program.

4. A computer according to claim 3, wherein said fourth means comprises transmitting means responsive to said switching element to cause during said second mode of operation said central unit to transmit to said display unit the address of the next instruction of said operative program to be executed and coding means for generating a coding of the information located at said address and for supplying said coding to said display unit.

5. A computer according to claim 4 further comprising:

a condition program register for storing at least one of said parameters including significant results of previously performed instructions,

said fourth means comprising:

means conditioned by said switching element to send to said display unit during said second mode of operation the information stored in said condition program register.

6. A computer according to claim 3, wherein said switching element is manually operable.

7. An electronic computer with equipment for debugging operative programs comprising:

a first memory for storing instructions and data of said operative programs:

a central unit for processing said programs;

a switching element normally having a first state for defining a first mode of operation of said computer for processing said operative programs and a second state for defining a second mode of operation for a debugging program for debugging said operative programs;

said debugging program comprising a plurality of blocks;

a keyboard having a plurality of keys for entering into said first memory information relating to said operative programs during said first mode of operation;

first means controlled by the switching of said switching element from said first state into said second state to interrupt said first mode of operation and to activate said second mode of operation;

second means controlled by the switching of said switching element from said first state to said second state to store the parameters needed to subsequently restart execution of said operative program from the point of interruption,

third means responsive to the second state of said switching element to enable said keyboard to enter into said first memory information to be processed by said debugging program;

fourth means controlled by said switching element during said second mode of operation to associate a group of predetermined keys of said plurality to a corresponding block of said debugging program and to cause said central unit to selectively activate each of said blocks for processing information introduced from said keyboard before the actuation of one key of said group;

fifth means controlled by the switching of said switching element from said second state to said first state and responsive to said stored parameters for automatically restarting said operative program, whereby the switching between said modes of operation does not need any intervention by the operator for the correct restart of the operative program.

8. An electronic computer with equipment for debugging operative programs comprising:

a first memory for storing instructions and data of said operative programs;

a central unit for processing said programs;

a switching element normally having a first state for defining a first mode of operation of said computer for processing said operative programs and a second state for defining a second mode of operation for processing a debugging program for debugging said operative programs, said debugging program comprising a plurality of blocks;

a keyboard having a plurality of keys for entering into said first memory information relating to said operative programs during said first mode of operation;

a display unit for displaying information relating to said operative programs during said first mode of operation,

first means controlled by the switching of said switching element from said first state into said second state to interrupt said first mode of operation and to activate said second mode of operation,

second means controlled by the switching of said switching element from said first state to said second state to store the parameters needed to subsequently restart execution of said operative program from the point of interruption,

third means controlled by said switching element to enable said keyboard to enter information to be processed by said debugging program;

fourth means controlled by said switching elements to enable said display unit to display information relating to said debugging program;

fifth means controlled by said switching element during said second mode of operation to associate a group of predetermined keys of said plurality to a corresponding block of said debugging program and to cause said central unit to selectively activate each of said blocks to process information introduced from said keyboard before the actuation of one key of said group;

sixth means controlled by the switching of said switching element from said second state to said first state and responsive to said stored parameters for automatically restarting said operative program, whereby the switching between said modes of operation does not need any intervention by the operator for the correct restart of the operative program.

9. A computer according to claim 8 wherein said central unit comprises an addressing register for addressing the instructions of said operative program stored in the locations of said first memory during said first mode of operation, and wherein said fourth means are responsive to the address stored in said addressing register to enable said display unit to display said address and the information stored in the location addressed by said addressing register, whereby the display unit displays the address and the content of the location of the first memory corresponding to the instruction to be executed at the moment of the interruption caused by said switching element.

10. A computer according to claim 9, wherein said fifth means are responsive to the depression of a third key of said group for activating a third block of said debugging program, further comprising:

means controlled by the instructions of said third block for replacing in the location of said first memory addressed by said addressing register the information stored therein and displayed by said display unit with informations entered by said keyboard.

11. A computer according to claim 9 wherein said fifth means are responsive to the depression of a first key of said group for activating a corresponding first block of said debugging program, further comprising:

means controlled by the instructions of said first block for storing into said addressing register an address entered by said keyboard, said fourth means are responsive to the address stored in said addressing register to enable said display unit to display said address and the information stored in the location addressed by said addressing register.

12. A computer according to claim 11 further comprising:

means controlled by the instructions of said first block for incrementing the content of said addressing register at each successive depression of said first key, whereby the operator is allowed to inspect the content of said first memory starting upon the location identified by the content of said addressing register.

13. A computer according to claim 9 wherein said fifth means are responsive to a second key of said group for activating a corresponding second block of said debugging program, further comprising:

a program stop booking register;

first storing means controlled by the instructions of said second block for storing a condition indicating the actuation of said second key;

second storing means controlled by the instructions of said second block for storing into said program stop booking register a stop address entered by said keyboard;

sixth means operative during said first mode of operation for testing said condition;

seventh means actuated by said sixth means in presence of said condition for comparing the contents of said addressing register and said program stop booking register;

eighth means controlled by said seventh means in presence of the equality of said addresses for interrupting the execution of said operative program and conditioning said fourth means to display the booked address and the relevant content of the first memory.

14. An electronic computer with equipment for debugging operative programs comprising:

memory for storing instructions and data of said operative programs;

said memory including a service register for storing data not relevant at the end of each instruction;

a central unit for processing said programs;

a switching element normally having a first state for defining a first mode of operation of said computer for processing said operative programs and a second state for defining a second mode of operation for processing a debugging program for debugging said operative programs;

a keyboard having a plurality of keys for entering into said memory information relating to said operative programs during said first mode of operation,

a peripheral unit for entering information recorded in an external support into said memory;

first means controlled by the switching of said switching element from said first state into said second state to interrupt said first mode of operation and to activate said second mode of operation;

second means responsive to said switching element and controlled by a predetermined key of said keyboard for causing said central unit during said second mode of operation to transfer the program read on said support into said service register and for activating the execution of the program stored in said service register;

third means responsive to predetermined instructions of said program stored on said support for defining the starting point of the program to be executed at the end of the execution of the program stored on said support.

15. An electronic computer with equipment for debugging operative programs comprising:

a memory for storing instructions and data of said operative programs, said memory including:

a zone for storing instruction data not relevant at the end of each instruction;

a central unit for processing said programs;

a switching element normally having a first state for defining a first mode of operation of said computer for processing said operative programs and a second state for defining a second mode of operation for processing a debugging program for debugging said operative programs;

a keyboard having a plurality of keys for entering into said memory information relating to said operative programs during said first mode of operation;

a display unit for displaying information relating to said operative programs during said first mode of operation;

a peripheral unit for entering information recorded on an external support into said memory;

first means controlled by the switching of said switching element from said first state into said second state to interrupt said first mode of operation and to activate said second mode of operation;

second means controlled by said switching element to enable said keyboard to enter information to be processed by said debugging program;

third means controlled by said switching element to enable said display unit to display information processed by said debugging program;

fourth means controlled by a predetermined key of said keyboard for causing said central unit during said second mode of operation to transfer the program read on said support into said zone of the memory and

fifth means for activating the execution of the program stored in said zone;

sixth means responsive to predetermined instructions of said program stored in said zone for defining the starting point of the program to be executed at the end of the execution of the program stored in said zone.

16. An electronic computer with equipment for debugging operative programs comprising:

a memory for storing instructions and data of said operative programs, said memory including a zone for storing instruction data not relevant at the end of each instruction;

a central unit for processing said programs;

a switching element for selectively defining a first mode of operation of said computer for processing said operative programs and a second mode of operation for processing a debugging program for debugging said operative programs;

said debugging program comprising a plurality of blocks;

a keyboard for entering into said memory information relating to said operative programs during said first mode of operation;

said keyboard comprising a plurality of keys;

a display unit for displaying information relating to said operative programs during said first mode of operation;

a peripheral unit for entering information recorded on an external support into said memory,

first means conrolled by said switching element to interrupt said first mode of operation and to activate said second mode of operation;

second means controlled by said switching element to enable said keyboard to enter information to be processed by said debugging program;

third means controlled by said switching element to enable said display unit to display information processed by said debugging program;

fourth means controlled by said switching element during said second mode of operation to associate a group of predetermined keys of said plurality to a corresponding block of said debugging program and to selectively activate each of said block to process information introduced from said keyboard before the actuation of one key of said group;

fifth means controlled by a key of said group for causing said central unit to transfer the program read on said support into said zone memory and to activate the program stored in said zone.
 Description Submit all comments and votes
 


BACKGROUND OF THE INVENTION

The present invention relates to an electronic computer with equipment for debugging of the operative programs compiled by the operator before they are used.

Normally, in processors of high computing and storage capacity there are test or debugging programs already compiled and adapted to provide the operator with all the facilities which will enable him to follow the working out of the program under test and to obtain a visual display of any errors there may be.

It is obvious that since these debugging programs act on the programs being tested they must exist side by side with the latter in the memory of the processor. For this reason only processors of large dimensions offer these facilities.

Moreover, in the case of processors of small dimensions, the capacity of the memory is dimensioned to contain the program of maximum size from among those appertaining to the specific application of the processor (for example, application to accounting problems). Thus it is not possible for the programmer to test the compiled program, there being no available memory space. In fact, the makers of such processors tend to supply the necessary programs to the user already perfected or debugged.

This tendency finds its justification in the fact that an enlargement of the memory for the purpose of accomodating the debugging programs would affect the cost of the processor in a negative manner. Moreover, the user would acquire a processor with a low efficiency because of the unutilized portion of the memory.

The obvious disadvantage for the user deriving from this tendency is the absolute lack of flexibility of the processor purchased, inasmuch as the user is unable to personally make the slightest modification in the programs supplied with the processor.

This rigidity of performance of the processor puts the user in the position of depending entirely on the supplier of the processor for any development of service linked to a change of program.

Consequently, the user is compelled to request the supplier to modify the programs, a matter which involves long waiting times and high costs. In order to obviate these disadvantages, the user is prompted to modify the programs by himself and to ask outside computing centers for debugging of the modifications made. Even in this case, the user is forced to endure long waiting times and incur additional costs.

It is known however a minicomputer having an apparatus for debugging operative programs. This apparatus comprises a debugging panel not operable by the operator but only by the programmer. This panel includes a switch for switching the operation of the minicomputer from the normal mode to the debugging mode. There are provided also a group of switches each associated to a particular debugging operation, as displaying work memory register writing into the memory, step-by-step resuming etc.

In addition to this panel there is another panel for entering data and addresses into the memory which include also a display for displaying only two memory 8-bit bytes on binary code.

This debugging apparatus basically has two disadvantages, the first of which is of requiring specific devices and only in debugging mode and not used during the normal mode.

Such specific devices increase the cost of the debugging apparatus which therefore is expensive. The second disadvantage of such apparatus is of having a display which displays only two bytes at time.

Whereby it is difficult for the programmer to have a complete displaying of the desired memory register.

In consideration of the fact that the two modes of operations normal and debugging are mutually exclusive, there is therefore the technical problem of having a debugging equipment which utilizes the input-output devices as the keyboard, the console, the display and M.C. reader which normally equip the computer.

SUMMARY OF THE INVENTION

The main object is to carry out all the operations relating to the debugging using only the keyboard, the console and the display with which the processor is normally equipped, without making use of normally required equipment for debugging as performed in large processors.

Another object is to provide this debugging system without increasing the capacity and, therefore, the cost of the memory of the processor.

A further object is to provide a basic set of debugging programs resident in the read-only memory (ROM) of the processor and the possibility of introducing debugging programs which are pre-recorded on a magnetic card into a particular zone of the working memory (RAM) without altering the significant parameters of the programs being tested.

A further object is to enable the programmer to write and use the debugging programs most suited to his particular problem by recording such programs on magnetic cards.

BRIEF DESCRIPTION OF THE DRAWINGS

These characteristics and other characteristics of the invention will become clearer from the description and the accompanying drawings, in which:

FIG. 1a is a block diagram of the processor using the program debugging system according to the invention;

FIG. 1b is a perspective view of the processor;

FIGS. 2a, 2b, 2c show a detailed block diagram of the central unit of the processor;

FIG. 2 shows the arrangement of FIGS. 2a to 2c;

FIG. 3 shows timing signals of the central unit;

FIG. 4 shows the state register SO;

FIG. 5 shows timing signals of the state register SO;

FIG. 6 shows signals operating on the register SO during the reading of a microinstruction;

FIG. 7 shows the operative registers 30;

FIG. 8 is a block diagram of the registers 30;

FIG. 9 is a diagram of the reserved zone (ZRM) of the RAM 1;

FIG. 9a represents the program conditions byte;

FIG. 9b represents the interrupt code byte;

FIG. 9c represents the interrupt reservation byte;

FIG. 9d represents the debugging service byte;

FIGS. 10a, 10b and 10c show the flow chart of the interpreter microprogram;

FIG. 10d shows the formats of the instructions;

FIGS. 11a to 11g show the flow charts of the DBG (debugging) program;

FIGS. 12a to 12f show an example of visual display of an instruction;

FIG. 13 shows the flow chart of the bar identification microprogram;

FIG. 14 shows the summary flow chart of the operations of the debugging system according to the invention.

SUBJECT INDEX

__________________________________________________________________________ LIST OF ABBREVIATIONS Page 6 GENERAL DESCRIPTION Page 7 CENTRAL UNIT (FIG. 2) Page 9 1. Timer 20 Page 10 2. Execution of microinstructions (TABLE A) Page 11 3. State register (SO) 27 Page 17 4. Instruction register (RO) 26 Page 19 5. Operative registers 30 (scratch pad) Page 19 6. Arithmetic unit 35 Page 20 7. Switching elements 40 Page 22 8. Shift network 41 Page 23 9. Input network to the operative registers Page 24 10. Network providing connection to the RAM 1 Page 24 11. Channel logic 45 Page 27 DETAILED DESCRIPTION OF THE RAM 1 AND THE ROM 2 Page 28 INSTRUCTION INTERPRETING MICROPROGRAM Page 41 DBG PROGRAMS Page 56 1. Instructions used Page 56 2. Visual display of the instruction in the registers 362 and Page 61 3. Bar recognition Page 76 4. Program for introduction from magnetic card (Bar S2) Page 85 5. Read-RAM program (Bar S0) Page 92 6. STOP reservation program (Bar S1) Page 94 7. Writing-in-RAM program (Bar S6) Page 95 8. Step-by-step execution program (RUN key) page 96 CONCLUDING REMARKS AND EXAMPLES Page 98 CLAIMS Page 104 __________________________________________________________________________

LIST OF ABBREVIATIONS

Di = register 40, indicates the eight switching elements

Dev = a switching element of the register 40, specified by three bits

Crt = character, corresponds to eight memory bits

Mem = memory RAM 1

Ind = address

Mls = sequence logic matrix 28

Rb = base register

P1 = pointer 1

P2 = pointer 2

Cp = program conditions

Ci = interrupt code

Mi = instruction modification

Dbg = debugging

Bsd = dbg service byte

M.c. = magnetic card

Exor = exclusive-OR

Ci = interrupt code

Ip = program addresser (207)

Ai = enable interrupt

Psr = program in progress (Register 300 of RAM 1)

Ipsr = interrupt program (Register 302 of RAM 1)

Opsr = interrupted program (Register 301 of RAM 1)

Zrm = reserver zone of RAM 1

Rc = current reference

Cc = condition code

Cu = central unit 3

Pu = peripheral unit 4

Ir = reentry address (Reg. 327, FIG. 9)

Ii = addresses of interrupt program (Register 335 of FIG. 9)

Is = stop address (Register 350, FIG. 9)

Bsd = debugging service byte (Register 351 of FIG. 9)

Rl = working register (Register 352 of FIG. 9)

Ab = enable bars

Itr = reference Table address register.

DESCRIPTION OF PREFERRED EMBODIMENTS

A brief description of the processor using the program debugging system according to the invention will now be given with reference to FIGS. 1a and 1b.

Of course, reference is made herein to a particular embodiment of the processor without on that account limiting the possibilities of application of the system according to the invention to other types of processor.

More particularly, the processor of FIGS. 1a and 1b is of the microprogrammed type. That is, to each instruction of the program there corresponds a microprogram recorded in a permanent memory. The execution of a program instruction is achieved by means of the sequential execution of the microinstructions of the respective microprogram.

The processor of FIGS. 1a and 1b comprises a memory RAM 1 adapted to contain the instructions and the data of the program in process of execution, and a memory ROM 2 adapted to contain both the microprograms which implement the instructions of the programs and the programs used by the debugging system according to the invention, as will be better explained hereinafter.

The RAM 1 and the ROM 2 may be of any known type on the market and will therefore not be described in detail; it is only made clear that each cell of both of the memories is adapted to contain 16 bits.

The RAM 1 and the ROM 2 are connected to a central processing unit 3, which will be described in detail hereinafter and which is connected in turn to a group of peripheral units 4.

The peripheral units 4 may be of various kinds according to the particular application for which the processor is intended. In this particular case, there will be described and demonstrated hereinafter only the peripheral units used by the debugging system according to the invention. More particularly, the peripheral units shown are: an alphanumeric keyboard 5, a visual display 6, a control console 7, a printer 8, and a read/write unit 9' adapted to record and read data on a magnetic card 9. The read/write unit 9' is of the type described in U.S. Pat. No. 3,495,222 issued on Feb. 10, 1970 and assigned to the same assignee of this application.

There will now be described briefly with reference to FIGS. 1a and 1b the operations which the programmer must carry out during the stage of debugging a program recorded previously in the RAM 1. Of course, these operations will be described in detail later on.

Let it now be assumed that the program recorded in the RAM 1 is not being executed correctly by the processor because of errors of various kinds which the programmer may have made during the compilation thereof.

At this point, the programmer intends to carry out a check of the instructions of the program which the processor is not able to execute. He presumes that one of them is wrong. To correct this instruction directly in the RAM 1, the programmer acts on the console 7, positioning a key change-over switch 100 (FIG. 1b) from the normal setting to the debugging setting, writes the respective address of the instruction on the numeric part 101 of the keyboard 5 and then actuates a service bar S1 belonging to a group of bars 102.

Corresponding to this operation, an interrupt is generated in the program to be corrected (being caused by the switch 100 actuated on the console 7) and one of the debugging programs recorded in the ROM 2 is performed, the program being associated with the particular bar actuated on the keyboard 5. This program, for example, may have the effect of producing a visual display of the instruction corresponding to the address written on the keyboard and halting of processing with enabling of the keyboard 5. In this way, the programmer can enter the instruction he considers correct on the keyboard 5. Thereafter, the operator actuates another service bar S6 with which is associated another debugging program which records the correct instruction in the memory RAM 1 at the address previously entered.

The programmer may wish to carry out a debugging program different from those recorded in the ROM 2. If so, he inserts in the reader 9' the magnetic card 9 on which the desired debugging program is recorded, and actuates the service bar S2. This bar calls a special program of the ROM 2 which causes: the reading of the program recorded on the card 9, the transfer thereof to a fixed zone (ZRM) of the RAM 1, and the immediate execution of this program.

It is emphasized -- and this is explained in detail hereinafter -- that the fixed zone of the RAM 1 to which the card program is transferred does not contain information significant for the resumption of the program under test. Thus there is no loss of information in performing the debugging program recorded on the magnetic card 9. From what has been said, one of the advantages of the system according to the invention becomes obvious, i.e., the possibility of testing programs simply by actuating a change-over switch and using the same devices (keyboard, display, magnetic card) which are used during normal operation.

CENTRAL UNIT (FIG. 2)

A detailed description of the central unit 3 will now be given with reference to FIG. 2.

The central unit 3 is an assembly of logic circuits which handle and execute the various microprograms contained in the ROM 2.

It is composed of the following main blocks:

A timer 20 which times the development of the processing of the data inside the control unit 3. This timer is composed of an oscillator 21 and an assembly of signal generating circuits 22.

A sequence logic matrix network 25, which staticizes and interprets the codes of the microinstructions read from the ROM 2 and generates the commands necessary for the execution thereof. This network is composed of a microinstruction register (R0) 26, a state register (S0) 27 and a sequence logic matrix (MLS) 28.

An operative network which carries out the processing of the data by methods imposed by the sequence logic matrix 28. The operative network comprises: the operative registers 30 (scratch pad) which are divided into two groups RA-31 and RB-32 each of which is composed of sixteen eight-bit registers hereinafter referred to as AO-A15 and BO-B15, respectively; an arithmetic unit 35 which is formed by three blocks UA-36, UB-37, UC-38 with eight-bit parallelism; the switching elements DI-40; a shift network ND-41, an input network to the operative registers which comprises the nodes NA and NB and two registers BA-42, BB-43, and a network providing connection with the RAM 1 and composed of nodes NO and NC; a channel logic 45 which controls the interface providing connection to the peripheral units and monitors the operative simultaneity of the central unit 3.

A detailed description of the above-enumerated blocks will now be given.

1. Timer 20

The oscillator 21 generates periodic pulses which define a fixed period of time called the machine cycle which lasts for the time necessary for the execution of an elementary operation (for example: reading of an operative register 30, its incrementing and rewriting in the operative register 30).

During the machine cycle, signals are generated by the circuit 22, the duration of which and the positioning of which in the machine cycle are fixed.

The function of these signals is predetermined. The fact that they act or do not act on the circuits of the central unit 3 is determined by the conditions generated by the sequence matrix 28 in the manner to be described hereinafter.

The working of the central unit 3 is completely synchronous with this timing, as is also the conversation with the peripheral units.

Ten signals are generated by the circuit 22 and their use is illustrated hereinafter. The signals are:

T0 which acts on the state register 27,

T1 which times the reading of the ROM 2,

T2 which times the RAM 1,

T3a which acts on the register R0-26,

T3n which also acts on the register R0-26,

T4a which acts on the registers BA42, BB43 and on the switching elements 40,

T5 which acts on the operative registers 31 and 32,

T6 and T7 which act on the channel logic 45.

FIG. 3 is a timing diagram in which the signals mentioned appear.

Of course, the oscillator 21 and the circuits 22 are not described in detail, since they are known in the field of circuit design.

2. EXECUTION OF MICROINSTRUCTIONS

Before proceeding to the description of the other blocks of the central unit 3, a brief mention will now be made of the microinstructions used by the central unit 3 in the debugging system according to the invention and of the execution thereof.

The execution of a microinstruction can be divided into two phases: An interpretive phase, common to all the microinstructions, which reads the address microinstruction from the ROM 2, prearranges the carrying out thereof and increments the addresser of the ROM 2. This phase is obviously independent of the code of the microinstruction read. An execute phase, during which the processing of the data takes place in accordance with the procedures indicated by the microinstruction read in the preceding interpretive phase. The interpretive phase is always performed in a single machine cycle and the configuration of the signals (hereinafter called "commands") is stable within the limits of the cycle. The configuration of these commands defines the operations to be performed and is called the "Interpretive State."

The presence of the interpretive state is indentified by a flip-flop S000 of the register 27 (FIG. 4).

The execute phase is performed in one or more machine cycles to which there correspond as many states, each defined by a corresponding flip-flop of the register 27.

Throughout the execute phase, the code of the microinstruction in question remains stable in the register 26, while the situation of the flip-flops of the register 27 which define the current state develops.

Each state defines the next as a function of the code of the microinstruction read.

At the end of the execution of each microinstruction a return is made to the interpretive state S000 to read the following microinstruction from the ROM 2.

During the two phases, the interpretive phase and the execute phase, the combinatory network 28 (MLS), which has the registers 26 and 27 as inputs, generates commands C which enable given flows of information through the operative network or the other blocks of the central unit 3.

The information then flows between the blocks of the central unit 3 through a series of AND gates of various types which are controlled by the commands C generated by the combinatory network 28. In FIG. 2 these gates are symbolically represented divided into three zones. The central zone contains the control signal of the gate generated by the network 28 (MLS). When this command is present, the signals at the input of the gate are transferred to the following block. The pairs of numbers varying from 00 to 15 which are in the top zone and the bottom zone of the gates indicate the number of bits which they allow to pass and more precisely the positions in which these bits are at the input and the output. For example, a gate having the pairs of numbers 07, 00 both input and output is a gate which transfers an eight-bit character in direct parallel. On the other hand, a gate having the pair of numbers 03, 00 in the top zone, that is as input, and the pair of numbers 07, 04 in the bottom zone, that is as output, is a gate which transfers four bits shifting them to the left by four places. If 07, 04 are input and 03, 00 are output, the shifting is by four places to the right. Finally, if the input zone is empty, this signifies that the bits are forced into the gate from outside.

There is described hereinafter, with reference to Table A, the set of microinstructions used by the debugging system according to the invention, omitting the other microinstructions which the central unit is capable of carrying into effect. The microinstructions given in Table A have a fixed format of sixteen bits which corresponds to one word of the ROM 2. The format of the microinstructions is as follows: ##SPC1##

The fields, each of four bits, have the following significance:

F is the operative code of the microinstruction;

X indicates the first operand;

Y indicates the second operand;

Z is an extender of one of the foregoing fields.

When the fields X and Y specify as operands the registers A, B or L of the operative registers 30, they will be indicated in the microinstructions by the symbols Ax, Bx, Lx, Ay, By, Ly, respectively.

The microinstructions are divided into groups distinguished by the different function code, that is by the different binary configuration of the field F of the microinstruction.

The microinstructions having the same function code are executed with the same sequence of states.

TABLE A __________________________________________________________________________ Name F X Y Z FUNCTION __________________________________________________________________________ LOGICAL ARITHMETIC ADDB 0110 A B 0101 B.rarw. (A+B) ANDA 0110 A B 1000 If (A.rarw.A AND B) = 0 ANDB 0110 A B 0100 If (B.rarw.A AND B) = 0 PUTS AND 0110 A B 0000 if (A AND B) = 0 ORA 0110 A B 1110 If (A.rarw.A OR B) = 0 ORE 0110 A B 0111 If (A EX OR B) = 0 SOT 0110 A B 0010 If (A - B)>0 D00 = 1 TRANSFER TAB 0101 A B 1100 B.rarw.A TBA 0101 A B 0011 A.rarw.B EXCHANGE SLL 0100 L L 1111 Ax.revreaction.By; Bx.revreaction.Ay DECREMENT DCA 1010 A 0100 1010 If (A.rarw.A - 1) = 0 puts D01=1 LOAD SWITCHING ELEMENT TAD1 1011 A 1110 0111 DI.rarw.A TBDI 1011 B 1111 0111 DI B REDI