Small-Scale Automation on the Ural-11B Digital Computer
Abstract Generated abstract
This paper describes small scale automation techniques for the Ural-11B digital computer aimed at reducing routine programming work and input preparation. It proposes a relocation program that replaces conditional calls to standard library subroutines with actual calls, automatically copies the required routines from magnetic tape into assigned memory, and supports formation and replenishment of the subroutine library through an accompanying program. The paper also presents a universal input card scheme that permits heterogeneous card decks to be loaded in arbitrary quantity and order without modifying the input card structure. Appendices provide machine code listings for the relocation program, the library maintenance program, and the universal and final input cards.
Full Text
SMALL-SCALE AUTOMATION ON THE “URAL-11B” DIGITAL COMPUTER
V. K. Kivran, V. A. Malyshev
(Presented by the scientific seminar of the UVL TPI)
Automation of Calls to the Library of Standard Subroutines (BSP)
When calling an SP with the command 637A, the programmer must know the initial addresses of all subroutines used. In addition, all SPs must be copied from magnetic tape into the NF and processed with the aid of additional programs. All this consumes time unproductively, increases the probability that errors will appear in the program, and thereby increases debugging time.
In the present work it is proposed to replace calls to subroutines of the type 63MA by the command KMN, where $N$ is the number of the subroutine in the BSP, and $K$ is any free machine code, for example 27. Before the program begins operation, a special placement program RP is included; it searches the program for all calls to the BSP, copies the corresponding SP from magnetic tape into the NF according to the SP number, automatically places them one after another in the NF zone allotted by the programmer, and replaces the conditional codes for calls to the SP by codes of an actual call, of the type 63MA. In this process the SPs themselves are also processed by the same RP.
It should be noted that the RP can process programs written both in the codes of the “Ural-11B” command system and in the codes of any interpreting system that does not use the corresponding free code. Therefore, in the conditional command for calling an SP, any modifier number and any sign may appear in the high-order digits of the address part of the command.
To process the working program it is sufficient to execute the following commands:
\[ \begin{aligned} &65\ 5\ A_0\\ &25\ 5\ m\\ &65\ 6\ \alpha_0\\ &63\ 7\ \mathrm{RP}\\ &23\ 0\ \text{start}, \end{aligned} \]
where $A_0$ and $m$ are the initial address and the number of commands subject to processing, and $\alpha_0$ is the initial address for placing the SP.
It should be noted that this system does not provide for the automatic replacement of one SP by another in the course of solving a problem if the allocated zone is insufficient to accommodate all the necessary SPs. Therefore,
for an SP, a sufficient number of cells in the NF must be allocated at once.
To form and replenish the BSP, an accompanying program is proposed; for its operation the following information is specified:
00030) 25 1n+2;
00062) 25 3S;
00106) 31 2 λ N₀,
where $\lambda$ and $N_0$ indicate the cabinet and the initial zone for recording the input SPs, $S$ is the number of input SPs, and $n$ is the number of cards in an SP deck. Before each SP a “catalog line” is punched; it occupies one full cell. It specifies the length of the SP and the length of that part of it which is to be processed by the relocation program. The “catalog line” also specifies, in the 24th digit, a flag indicating whether the SP refers to other SPs. In this case the length of the SP must not exceed 3777 cells.
The accompanying program rewrites each SP, together with its “catalog line,” into the next free zone $N$, where $N_0 \leq N \leq 3777$, and prints an “information line,” in which $N$ and the “catalog line” of the SP are printed.
The zone number of the SP is also the number of the SP in the library when it is called by a conditional code in the working program.
Automation of the input of information material into the machine
The intended purpose of the Ural-11B digital computer presupposes the need to input a large quantity of diverse information. The input system of the digital computer makes this input difficult; the programmer has to prepare several more or less complex input cards. The input of material becomes cumbersome, inconvenient, and nonstandard.
In the present work a universal input card is proposed, by means of which various information material can be input in any quantity without changing the card (and without even knowing its contents). When this method is used, before the next deck of cards only an accompanying card with the following words is placed:
40 0 0100P
25 1 N;
65 2 A₀;
25 2 n;
00 0 00000,
where P is the type of recoding (from the digital-computer instruction system);
$N$ is the number of cards in the deck, not counting the accompanying card;
$A_0$ is the initial address for placing the information;
$n$ is the number of words on the card.
These card decks, with their accompanying cards, are compiled in any order and in any quantity; at the front a universal card is placed, and at the end a final card, which is also one and the same card for any input. Thus, the formed packet of cards is input into the machine without stopping by pressing the “start input” button on the Ural-11B CPU.
Appendix 1. Relocation program
03000 570 37775 03050 450 03023
2 570 00016 2 256 00001
| Address | Code | Operand | Address | Code | Operand |
|---|---|---|---|---|---|
| 4 | 420 | 03025 | 4 | 716 | 00000 |
| 6 | 450 | 03023 | 6 | 260 | 03056 |
| 03010 | 425 | 00000 | 03060 | 426 | 00000 |
| 2 | 520 | 03226 | 2 | 454 | 00000 |
| 4 | 540 | 03231 | 4 | 440 | 03010 |
| 6 | 200 | 03164 | 6 | 450 | 00017 |
| 03020 | 654 | 37774 | 03070 | 426 | 00001 |
| 2 | 254 | 00001 | 2 | 450 | 00033 |
| 4 | 425 | 00001 | 4 | 450 | 03055 |
| 6 | 554 | 00001 | 6 | 716 | 00000 |
| 03030 | 600 | 03160 | 03100 | 260 | 03076 |
| 2 | 644 | 40004 | 2 | 646 | 00002 |
| 4 | 244 | 03026 | 4 | 425 | 00000 |
| 6 | 454 | 00001 | 6 | 520 | 03227 |
| 03040 | 450 | 03055 | 03110 | 530 | 03230 |
| 2 | 450 | 03077 | 2 | 130 | 00030 |
| 4 | 420 | 03023 | 4 | 054 | 00002 |
| 6 | 410 | 03025 | 6 | 020 | 00030 |
| 03120 | 050 | 00014 | 03170 | 420 | 03023 |
| 2 | 023 | 00000 | 2 | 450 | 03176 |
| 4 | 563 | 00001 | 4 | 654 | 37774 |
| 6 | 210 | 03144 | 6 | 254 | 00001 |
| 03130 | 140 | 03232 | 03200 | 424 | 00000 |
| 2 | 210 | 03140 | 2 | 210 | 03020 |
| 4 | 030 | 00030 | 4 | 440 | 03010 |
| 6 | 230 | 03142 | 6 | 454 | 00000 |
| 03140 | 010 | 00030 | 03210 | 450 | 00026 |
| 2 | 053 | 00000 | 2 | 024 | 00002 |
| 4 | 643 | 00002 | 4 | 050 | 00024 |
| 6 | 243 | 03122 | 6 | 230 | 03010 |
| 03150 | 420 | 03055 | 03220 | 644 | 40004 |
| 2 | 510 | 40013 | 2 | 244 | 03200 |
| 4 | 010 | 00030 | 4 | 237 | 00000 |
| 6 | 050 | 00030 | 6 | 770 | 00077 |
| 03160 | 024 | 00002 | 03230 | 630 | 00027 |
| 2 | 055 | 00000 | 2 | 000 | 04000 |
| 4 | 645 | 00002 | |||
| 6 | 245 | 03010 |
Appendix 2. Accompanying Program
| Address | Code | Operand | Address | Code | Operand |
|---|---|---|---|---|---|
| 00030 | 251 | 00002 | 00064 | 652 | 00220 |
| 2 | 651 | 00100 | 6 | 660 | 00066 |
| 4 | 400 | 01001 | 00070 | 400 | 24003 |
| 6 | 660 | 00036 | 2 | 660 | 00072 |
| 00040 | 252 | 00024 | 4 | 422 | 00001 |
| 2 | 720 | 02000 | 6 | 410 | 00075 |
| 4 | 260 | 00212 | 00100 | 450 | 00013 |
| 6 | 051 | 00000 | 2 | 510 | 00001 |
| 00050 | 641 | 00002 | 4 | 450 | 00015 |
| 2 | 242 | 00042 | 6 | 312 | 00000 |
| 4 | 241 | 00036 | 00110 | 260 | 00106 |
| 6 | 400 | 07000 | 2 | 651 | 00010 |
| 00060 | 400 | 21000 | 4 | 257 | 00004 |
| 2 | 253 | 00000 | 6 | 420 | 00107 |
| 00120 | 637 | 00170 | 00160 | 210 | 00150 |
| 2 | 257 | 00010 | 2 | 243 | 00070 |
| 4 | 022 | 00000 | 4 | 400 | 24003 |
| 6 | 637 | 00170 | 6 | 770 | 00000 |
| 00130 | 420 | 00107 | 00170 | 050 | 00040 |
| 2 | 410 | 00103 | 2 | 510 | 40005 |
| 4 | 450 | 00107 | 4 | 321 | 23000 |
| 6 | 420 | 00013 | 6 | 641 | 00001 |
| 00140 | 410 | 00136 | 00200 | 020 | 00040 |
| 2 | 450 | 00013 | 2 | 510 | 00003 |
| 4 | 600 | 00150 | 4 | 247 | 00170 |
| 6 | 210 | 00130 | 6 | 641 | 00001 |
| 00150 | 642 | 00050 | 00210 | 237 | 00000 |
| 2 | 643 | 40050 | 2 | 777 | 00007 |
| 4 | 560 | 00015 | 4 | 000 | 00000 |
| 6 | 600 | 00162 | 6 | 000 | 00000 |
Appendix 3. Universal input card and final card
| 00030 | 400 | 01001 | 00060 | 720 | 02000 |
| 2 | 230 | 00046 | 2 | 260 | 00074 |
| 4 | 000 | 00000 | 4 | 052 | 00000 |
| 6 | 000 | 00000 | 6 | 642 | 00002 |
| 00040 | 630 | 00056 | 00070 | 242 | 00060 |
| 2 | 241 | 00036 | 2 | 230 | 00000 |
| 4 | 400 | 01001 | 4 | 777 | 00007 |
| 6 | 652 | 00030 | 6 | 777 | 00007 |
| 00050 | 252 | 00004 | |||
| 2 | 630 | 00056 | |||
| 4 | 230 | 00030 | |||
| 6 | 660 | 00056 | |||
| 00030 | 400 | 07000 | |||
| 2 | 770 | 00000 | |||
| 4 | 770 | 00000 | |||
| 6 | 770 | 00000 | |||
| 00040 | 000 | 00000 |
REFERENCES
- Universal Automatic Digital Computing Machines “Ural-11.” Programming Instructions. Part I. Command System. Programming. BNTI, 1965.