INTRODUCTION ======== You have got a package AGDS (Adventure Game Development System), intended for creation of dynamic adventure games, training programs, various advertising products. The structure of a package is entered as by(with) the original program - interpreter AGI (Adventure Game Interpreter), which, purely, and is by that "recovers" your game, and as the adapted interpreter, íîñÿùèé, as well as package, name AGDS. Hereinafter all written about the interpreter AGI can completely be referred and to the interpreter AGDS. If you never had to play in Larry, Space Quest and other similar games, you fascinating acquaintance to the whole family of adventure games is necessary. Their sense consists in following. You - main working person of game, depending on your actions develop its(her) plot. Though the characters of game and occurring events are thought out by the author beforehand, the course of game will depend on your actions. For successful creation of the programs in system AGDS in creative group, at least, three persons should enter: ñöåíàðèñò, artist and programmer of rather high qualification. Later we shall try to describe provisional distribution of duties in group. Package AGDS offers you to act in a role of the author of game, i.e. to develop a plot, to think out the characters, íàðèñîâàòü of scenery and ïð. The programs of our package will help to you to draw scenery and characters, to describe logic of game, to make the dictionary of words, which describe subjects and actions. Data, prepared with the help of our package, the program AGI will transform into fascinating fantastic game. We shall help to you all íàðèñîâàòü and to show, and to think out all this you owe! We consider(count), that you are familiar with work on the personal computer, therefore in the description to not contain the item of information on the keyboard, files and ïð. In the first part of the description you will get acquainted to the program AGI and its(her) work. You learn(find out), that such resource, object, staff, cycle and other. We shall in detail consider process of creation of drawings, description of the image, description of logic of work. In the second part the programs - utility of a package AGDS are described. The descriptions of the programs assume, that you already have familiarized with the first part. The third part contains a few examples. The first example is a complete cycle of creation of the elementary game. On it(him) we shall consider interactions of all programs of a package. The second example is a real fragment of game In Seàrch of Lost Planet, on which we shall consider peculiarities of realization of games. Interactions of scenery, driven objects, sound and description of logic of work are here shown. The fourth part is actually the description of an example of creation of the training program. We assume, that at us the package AGDS will in basic be used for creation of the training programs, therefore as an example a complete cycle of creation of the training program "THUNDER-STORM" is considered(examined). Getting a package, you for the first time receive the in detail commented author's initial texts of this program, created in "ÈÍÒÅÏ" (C) ×åáîêñàðû. You can familiarize with the recommendations of the developers of the program "THUNDER-STORM" on a spelling of the similar programs. In the application the particulars on formats of data are resulted(brought), these items of information assume knowledge at a level qualified ïðîãðàìèñòîâ. In connection with constant development of a package, small differences in the description of the programs from realization are possible(probable), therefore closely read the text in a file READ_ME on a diskette. PART I.Èíòåðïðåòàòîð AGI (AGDS) ================================ I.1. THAT SUCH AGI ================== The interpreter AGI (AGDS) is a program, allowing to develop and to execute èãðîâûå the programs, containing to the colour diagram, sound support, animation. AGI gives to the user an opportunity to program logic of game on some, rather simple programming language, hiding from the developer all difficulties, connected to management ãðàôèêîé, input from the keyboard, äæîñòèêà, work with the timer and generator of a sound of the computer. The language AGI (AGDS) represents language of a high level, close to the languages Prolog and Small Talk. In this language logic of work of the program is described, i.e. those attitudes(relations), in which objects during game, ìóëüòôèëüìà or dialogue enter. For example, if you develop adventure game, during which the player gets in this or that situation depending on that, there will be it(he) to the right or on the left, such choice to you will need to be described in this language as a predicate, accepting the meaning(importance) False (ëîæü) or True (true) according to meanings(importance) of current coordinates of a point, identifying the player. I.1.1 With THAN WORKS AGI ======================== The interpreter AGI contains: - 256 (0 - 255) one-byte variable (Var); - 256 (0 - 255) tags (Flag); - Known quantity(amount) of objects, controlled by the interpreter, one of which (the object 0) is operated playing with the keyboard; - known quantity(amount) of subjects; - 12 ñîðîêîñèìâîëüíûõ line variable (string). Some variable (0 - 26) and the flags (0 - 15) already çàðåçåðâèðîâàíû for management of the interpreter, other are used under the discretion of the programmer. The interpreter provides general(common) for all programs, simultaneously loaded in his(its) memory, field variable both flags. The quantity(amount) of objects and subjects is defined(determined) by a Object-resource. The actions of the interpreter are described by teams (operators) language of the interpreter. For example, team of management by objects, load and âûãðóçêè of resources and etc.. In detail the teams of the interpreter will be considered later. The note! ------------ All variable, flags, objects, line, word, message and ïð. Are identified by a serial number, and the numbering for is unique total (for example, there is variable number 5, line number 5 and flag number 5). I.2. RESOURCES - BASIC TYPE GIVEN(DATA) AGI ====================================== We develop èãðîâûå of the program, i.e. we think out a plot, we create èãðîâûå objects, îäâèæèâàåì them, we develop scenery and dictionary of system for dialogue playing with AGI. For the description total it resources are entered. For creation some of them we use the auxiliary programs, complex of which makes AGDS, in this case of the entrance given these programs are resources. I list all used resources. The resources serve for representation: - Ïîëíîýêðàííûõ, colour graphic drawings (Picture-resource); - colour ìóëüòèïëèêàöèîííûõ of the images (View-resource); - sound effects (music, noise) (Sound-resource); - èãðîâûõ of objects - subjects (Object-resource); - dictionary of system for dialogue playing with AGI (Word-resource); - purely of the programs in internal language AGI (Logic-resource). We shall consider in more detail each of these resources. I.2.1 a PICTURE-resource ==================== The resource serves for the description of the motionless image (scenery), on a background of which there is the moving driven èãðîâûõ of objects, which ïðîãðàììíî contact to view-resources (see I.2.2). The background has the size 160 points on a horizontal and 168 points on a vertical. Each point of a background can be painted in one of 16 colours. For creation of illusion îáúåìíîñòè to each point of a background one more characteristic - priority is attributed. Priority defines(determines) óäàëåííîñòü of each point from supervision. The point, have the greater priority is considered located closer and on the contrary. The priority accepts meanings(importance) from 0 up to 15. At display of driven objects (view), they are displayed only atop of those areas, which have not greater, than at them a priority, that allows to create illusion of passage for any subject or " before it ". The priority 4 is considered most distant (any object cannot leave for him(it)), priority 15 - nearest (any object cannot pass "before" it). The priorities 0, 1, 2, 3 are service. The parts of a picture-resource as lines and areas, represented in priorities 0, 1, 2, 3 have the names: 0 - Unconditional barrier (border); 1 - Conditional barrier; 2 - Alarm barrier; 3 - Surface of water. The Picture-resource represents a sequence of teams, produced by the graphic editor of the static of the images Picture Manager (PM), the execution(performance) of which allows íàðèñîâàòü a background, on which action develops and to attribute by his(its) points necessary priorities, ò.å.ñîçäàòü volumetric scenery. We ðày your attention once again on the fact, that the teams, described in section I.2.1, through which there is the picture-resource, are generated by the program Picture Manager (PM) automatically during drawing by the artist of conceived scenery. We shall get acquainted to these teams more in detail (ñì.òàêæå the description pm). I.2.1.1 a TEAM of INSTALLATION of COLOUR =============================== Originally all points of a background have white colour and priority 4. We can íàðèñîâàòü the image of one of the following colours: 0 - Black 8 - dark - grey 1 - dark blue 9 - light-blue 2 - Green 10 - brightly green 3 - ñèíå-green 11 - brightly ñèíå-green 4 - red 12 - brightly red 5 - lilac 13 - ñâåòëî lilac 6 - brown 14 - yellow 7 - Grey 15 - white Just for this purpose and given team serves. After its(her) execution(performance) all subsequent graphic teams will use for display colour established by the given team. I.2.1.2 a TEAM of a CANCELLATION of COLOUR ============================ This team is used, if we already íàðèñîâàëè the image. After this êîìàíû any graphic team does not change colour of already displayed points (i.e. does not change colour of our image). I.2.1.3 a TEAM of INSTALLATION of a PRIORITY ==================================== The graphic teams, following to this team, will establish to displayed points a current priority. I.2.1.4 a TEAM of a CANCELLATION of a PRIORITY ================================= After this team any graphic team does not change a priority of already displayed points. I.2.1.5 a TEAM of DISPLAY of BROKEN =================================== For drawing the images is used of a little bit graphic teams. It is teams of drawing of several versions ëîìàííûõ of lines, and team of display of a smooth line. We shall consider the first team of display ëîìàííûõ of lines. The first team draws a line by current colour and priority, consisting from pieces of vertical and horizontal lines; and it(she) begins from a vertical line: ( X, y) ³ ³ V ( X, y1) Where õ - horizontal coordinate, and at - vertical coordinate. Since we draw a vertical line, coordinate on õ - does not change. The following line - horizontal, does not now vary coordinate on at. ( Õ, ó) ³ ³ V ÀÄÄÄÄÄÄÄÄÄ > (õ2, ó1) (õ, ó1) X It will exchange on õ2, thus showing that already 2-th changes. Further is similar: ( Õ, ó) (õ2, ó3) ³ ÚÄÄÄÄÄÄÄÄÄÄÄ > (õ4, ó3) ³ ³ V ³ ÀÄÄÄÄÄÄÄÄÄ > Ù ( Õ, ó1) (õ2, ó1) In the description there is no necessity to list(transfer) the whole sequence of coordinates of all points. X, at, õ, ó1, õ2, ó1, õ2, ó3, õ4, ó3, and it is enough to list èçìåííûå of coordinate, since we know how they changed. In a total(result) we shall receive õ, at, ó1, õ2, ó3, õ4. This sequence and will set a team. The second team is similar to a team 5, but the first line is horizontal. ( Õ, ó) ÄÄÄÄÄÄÄÄÄÄÄÄ > ¿ (õ1, ó) ³ ³ ³ V ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄ > Ä...... (õ1, ó2) (õ3, ó2) Is set by a sequence õ, at, õ1, ó2, õ3, ó4....... The third team draws a broken line, consisting of pieces direct. ( Õ1, ó1) /\ / \ / \ / \... (õ3, ó3) / \ / ( Õ, ó) \ / \/ ( Õ2, ó2) Is set by a sequence õ, at, õ1, ó1, õ2, ó2.... I.2.1.6 a TEAM of DISPLAY of SMOOTH CURVE(CURVE) ======================================= === This team is a version of a team ïðî÷åð÷èâàíèÿ of a general(common) broken line, consisting of very short pieces. Line ïðî÷åð÷èâàåòñÿ from a point (õ, ó) in a point (õ1, ó1), further in a point (õ2, ó2), and etc.. Operands are x, y, dx1, dy1, dx2, dy2,..., where dx (n) = x (n-1) - x (n), dy (n) = y (n-1) - y (n) I.2.1.7 a TEAM ÇÀÊÐÀÑÊÈ of AREA ================================ The given team provides çàêðàñêó of closed areas with current colour and priority since a point, which should be inside chosen area. By one team it is possible to paint over one or several areas, setting a pair of coordinates being inside it(her). The team has the following peculiarities: 1. If the current colour is established and is not equal 15 (i.e. not white), as area, being subject çàêðàñêå, considers closed area of white colour, containing a chosen point. To recolour not white area it is impossible! ------------------------------------- 2. If the current colour is not established (is cancelled), as area considers closed area of points, have a priority 4 and containing 4 an and containing a chosen points by a chosen a point. To recolour points (and also to change a priority of points excellent(different) from 4) IT IS IMPOSSIBLE (colour remains same)! I.2.1.8 a TEAM ÍÀÐÈÑÎÂÀÒÜ a POINT ================================ This team consists of two parts. The first of them serves for the task of parameters, second purely for drawing. To establish parameters: -------------------- In this part it is underlined: 1) The number from 0 up to 7, is defined(determined) the size of a represented point; 2) If the size specified in the previous item of a point it is more 2, in the given item it is possible to specify whether to represent a point as a square or as a circle. Depending on a choice to parameter meaning(importance) "0" or "1" (0 - circle, 1 - square) is appropriated(given); 3) Specifies what will be a point - ordinary or "translucent" with a parity(ratio) of number of painted over elements and unpainted 1:3. Íàðèñîâàòü a point: ---------------- In this part the task of direct coordinates underlines, where just the point will be íàðèñîâàíà õ1, ó1, õ2, ó2, õ3, ó3......, where õ (i), y (i) - coordinate of centre of a point. If in section " the installation of parameters " in item 3) is specified on the fact, that the point "is translucent", it is required to specify yet meaning(importance) r (i), i.e. r1, x1, y1, r2, x2, y2, r3, x3, y3,....., where r (i) - the any number, from meaning(importance) of which depends an arrangement of painted over elements inside "translucent" "point". I.2.1.9 a TEAM of the END of WORK ============================ This team finishs formation of a drawing, and it(she) should without fail be present at end(!at the end of) of a Picture-resource. More in detail about graphic teams read in the description of the editor pm. I.2.2 a VIEW-resource ================= With the help of this resource effect of the driven and varied image is reached. We shall consider more in detail as it is done(made). Principles îäâèæèâàíèÿ of the image in the AGI-interpreter is similar to a principle, used in animation: the images of consecutive phases of a movement quickly replace each other on the screen, creating illusion of a continuity. The image of one phase of a movement refers to as by the STAFF (Cel). We shall consider an example of the image of the staff (image of the right arrow(pointer)). ÚÄÄÄÂÄÄÄÂÄÄÄÂÄÄÄÂÄÄÄÂÄÄÄÂÄÄÄÂÄÄÄÂÄÄÄÂÄÄ ÄÂÄÄÄ ¿ 1³ ³ ³ ³ ³ ³ ³ ³ Õ³ ³ ³ ³ ÃÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄ ÄÅÄÄÄ ´ 2³ ³ ³ ³ ³ ³ ³ ³ Õ³Õ³ ³ ³ ÃÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄ ÄÅÄÄÄ ´ 3³ Õ³ ³ ³ ³ ³ ³ ³ Õ³Õ³Õ³ ³ ÃÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄ ÄÅÄÄÄ ´ 4³ Õ ³ Õ ³ Õ ³ Õ ³ Õ ³ Õ ³ Õ ³ Õ ³ Õ ³ Õ ³ Õ ³ ÃÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄ ÄÅÄÄÄ ´ 5³ Õ³ ³ ³ ³ ³ ³ ³ Õ³Õ³Õ³ ³ ÃÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄ ÄÅÄÄÄ ´ 6³ ³ ³ ³ ³ ³ ³ ³ Õ³Õ³ ³ ³ ÃÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄ ÄÅÄÄÄ ´ 7/ ³ ³ ³ ³ ³ ³ ³ Õ³ ³ ³ ³ /ÔÍÍÍÏÍÍÍÏÍÍÍÏÍÍÍÏÍÍÍÏÍÍÍÏÍÍÍÏÍÍÍÏÍÍÍÏÍ ÍÍÏÍÍÍ ¾ / 1 2 3 4 5 6 7 8 9 10 11 \ / | > a base point centre of the staff base of the staff / At the image of the staff one of 16 colours (at the choice of the user) serves for a designation of transparent parts of the staff and refers to as by colour of a background. At ïåðåðèñîâêå of the staff on the screen on a place of this colour colours of points, already displayed on the screen, are kept. In our case for colour of a background we choose white colour (empty crates), the painted over crates are designated Õ. the Staff, represented above, has height 7 and width 11 elements of display. The bottom left element of the staff refers to as by a base point of the staff. Coordinates of this point - coordinate of the staff (in our case (1,7)). The bottom number(line) of elements of the staff refers to as by base of the staff. The central point of base refers to as by centre of the staff. Thus, as against a Picture-resource the image of the staff is set not by a set of graphic teams, and description of parameters of the staff (width, height, îïèñàòåëÿ) and ïîñòðî÷íûì by coding of the image. In detail this procedure will be described in the application. We shall recollect, that the driven image (ìóëüòôèëüì) consists of the several staff, quickly ñìåíÿþùèõ each other on the screen. Such sequence following one for other staff we shall name as a CYCLE (loop). We shall consider(count), that the normally zero staff follows the latter. Cel 0 ÄÄÄÄÄ > cel 1 ÄÄÄÄÄ > cel n-1 a cycle (loop) from n of the staff. Cycle allows to display any completed movement of object. At last, the set of cycles will form a complete View-resource. I.2.3 a OBJECT-resource =================== This resource serves for representation of subjects. The subject is described by number of a room, where it(he) "is" and textual line, serving by the name of a subject. If number of a room is equal 255, it specifies on the fact, that the subject belongs playing. Thus the Object-resource is the original list of all subjects by and large involved in our game, and some subjects can be even invisible. But if it is necessary to us to show a subject or movement of a subject, we should connect to it a necessary View-resource. In general the image of all subjects, visible on the screen, is defined(determined) by the appropriate View-resources, if only they are not elements of scenery (then they are represented in a Picture-resource). I.2.4 a WORD-resource ================= This resource contains in a packed and ciphered kind the dictionary ðàñïîçíàâàåìûõ by the interpreter of words and expressions and their digital codes, used at the analysis of the entered offers. The syntactic analyzer of the interpreter allows to distinguish words and expressions consisting extremely from latin symbols and is oriented to English language! I.2.5 a SOUND-resource ================== The SOUND-resource represents a set of teams for management ÷åòûðåõãîëîñûì by the generator of a sound of the computer TANDY. By work on the machine IBM PC, AGI will transform these teams for use îäíîãîëîñûì ñèíòåçàòîðîì. The utilities (editor of sounds) for creation of own sound registration (new sounds) until exists, therefore we recommend to use ready sound-resources (sounds) from games of firm Sierra On Line, Inc. (C), taking them through the utility Volume Manager (vm, see the description). I.2.6 a LOGIC-resource ================== One of the most complex(difficult) resources of the interpreter. It(he) contains teams of the interpreter, and message of the interpreter. In essence, just in a logic-resource the script of our game is described. In it(him) ïðîãðàììíî according to the script the whole spectrum of interactions of all objects and âîâëå÷åíèÿ of this or that resources during fulfilment of the program depending on arising conditions is described. We shall consider more in detail than team of the interpreter. I.2.6.1 ARITHMETIC TEAMS ============================== We shall consider teams of work with variable: Increment n ---------- The meaning(importance) variable var (n) is increased per unit of, i.e. var (n) = var (n) + 1. If meaning(importance) variable equally 255, it does not change. Decrement n ---------- From variable var (n) unit, i.e. var (n) =var (n) -1 is subtracted. If meaning(importance) variable equally 00, it does not change. Assign n, m ----------- Variable var (n) meaning(importance) n, i.e. var (n) = m is appropriated(given) Assignv n, m ----------- Variable var (n) meaning(importance) variable var (m), i.e. var (n) = var (m) is appropriated(given). Addn n, m -------- The meaning(importance) variable var (n) grows by size m, i.e. var (n) = var (n) + m. Addv n, m -------- The meaning(importance) variable var (n) grows by size var (m), i.e. var (n) = var (n) + var (m). Subn n, m --------- From variable var (n) meaning(importance) m, i.e. var (n) = var (n) - m is subtracted. Subv n, m -------- From variable var (n) is subtracted var (m), i.e. var (n) = var (n) - var (m). Lindirectv n, m --------------- Variable var (i), where the i-meaning variable var (n), is appropriated(given) meaning(importance) var (m), i.e. var (var (n)) = var (m). Lindirectn n, m --------------- Variable var (i), where the i-meaning variable var (n), is appropriated(given) meaning(importance) m, i.e. var (var (n)) = m. Rindirect n, m -------------- Variable var (n) meaning(importance) variable var (i), where i-meaning variable var (m), i.e. var (n) = (var (var (m)) is appropriated(given). Muln n, m ---------- Variable var (n) is multiplied on m, i.e. var (n) = var (n) * m. Mulv n, m ---------- Variable var (n) is multiplied on var (m), i.e. var (n) = var (n) * var (m). Divn n, m ---------- Variable var (n) is divided on m, i.e. var (n) = var (n) / m. Divv n, m ---------- Variable var (n) is divided on var (m), i.e. var (n) = var (n) / var (m). Random n, m, k --------------- Variable var (k) meaning(importance) of a random number in an interval from n up to m is appropriated(given). We shall now get acquainted to teams varying meanings(importance) of flags. We shall remind, that the flags can accept only meanings(importance) 0 and 1. Set n ----- Flag (n) is established in 1. Set_v n ------- Flag (i), where the i-meaning var (n), is established in 1, i.e. flag (var (n)) = 1. Reset n ------- Flag (n) is established in 0. Reset_v n --------- Flag (i), where the i-meaning var (n), is established in 0, i.e. flag (var (n)) = 0. Toggle n -------- Flag (n) changes the meaning(importance) on opposite. Toggle_v n ----------- Flag (i), where the i-meaning var (n), i.e. flag (var (n)), changes the meaning(importance) on opposite. I.2.6.2 of a TEAM ÇÀÃÐÓÇÊÈ/ÂÛÃÐÓÇÊÈ of RESOURCES ======================================= === On teams, resulted(brought) in the given chapter, load (in internal memory) or âûãðóçêà (from internal memory) interpreter logic-, picture-, view- and sound-resources is made. Besides it is necessary always to remember that the internal memory of the interpreter does not exceed 64Ê. This restriction is displayed rather seldom, but about it(him) it is not necessary to overlook(forget). At overflow of internal memory of the interpreter it is necessary to break the program on a part and consistently to load / unload them in accordance with development of action in the given room or to manipulate picture-, view- and sound-resources through teams, resulted(brought) below. It is necessary to mean, that any team of destruction of a resource causes AUTOMATIC DESTRUCTION of all resources, loaded the AMBASSADOR destroyed! Load_logic n ------------ Into memory of the computer a resource number n is loaded Logic -. Load_logic_v n -------------- Is loaded Logic (i), where i-meaning var (n), i.e. Logic (var (n)). Load_pic n ---------- Is loaded Picture (i), where i-meaning var (n), i.e. Picture (var (n)). Load_view n ----------- Is loaded View (n). Load_view_v n ------------- Is loaded View (i), where i-meaning var (n), i.e. View (var (n)). Load_sound n ------------ Is loaded Sound (n). Discard_pic n ------------- Picture-resource with number i, where i - meaning(importance) var (n) is destroyed in memory. Discard_view n -------------- To destroy View (n). Discard_view_v n ---------------- To destroy View (i), where i-meaning var (n), i.e. View (var (n)). I.2.6.3 of a TEAM of MANAGEMENT by the PROGRAM ===================================== The team < ïåðåéòè_â_íîâóþ_êîìíàòó > is one of the most powerful teams of the interpreter. This team serves for change of algorithm of behaviour of object, scenery and ïð. The automatic change of coordinates EGO simulates transition in the next premise(room) (room), contiguous to the appropriate edge(territory) initial. Its(her) format: New_room n ---------- New_room_v n ------------ On these teams the following actions are made: 1. For all objects teams stop_update and unanimate are carried out; 2. All resources, except Logic 0 are destroyed; 3. Team player_control is carried out; 4. Team unblock is carried out; 5. Team set_horizon 24 is carried out; 6. Var (1) to appropriate(give) meaning(importance) Var (0); Var (0) to appropriate(give) n (or contents Var n for new_room_v); Var (4) to appropriate(give) 0; Var (5) to appropriate(give) 0; Var (16) to appropriate(give) number View-ðåñóðñà, which was connected with EGO, (object controlled playing). 7. To load logic Logic (i), where i - meaning(importance) Var (0)! 8. To establish coordinates EGO according to Var (2): - If EGO has touched the bottom edge(territory), to put it(him) on a line of horizon; - If EGO has touched the top edge(territory), to move it(him) to a bottom of the screen; - If EGO has touched the right edge(territory), to move it(him) to left and on the contrary. 9. Var (2) to appropriate(give) 0 (means, that EGO has not touched which border). 10. Flag (5) ÄÄ > 1 (It means, that in the first cycle of the interpreter after distribution of a team new_room n will be carried out èíèöèàëèçàöèîííûå of a part all ëîãèê, loaded and caused in èíèöèàëèçàöèîííîé of a part of logic, describing actions in this íîâîé_êîìíàòå. In the following cycle flag (5) will be reset(dumped) in 0 (see. A CYCLE of WORK of the INTERPRETER and initial texts of the program "THUNDER-STORM"). PAY ON THIS SPECIAL ATTENTION!). 11. To clean the buffer of input from the keyboard and to leave in system AGI (ñì.äèàãðàììó of work of the interpreter). Teams of a call of the subroutines: Call n ------ Call_v n -------- The Logic-resource with number n (or number, given Var (n)) is executed as the subroutine. If the logic with the appropriate number is away in memory of the interpreter, it(she) is temporarily loaded and after termination(ending) a call is destroyed (on it additional time) is spent. Any changes in contents of the registers and flags the team call does not cause. Return ----- This team returns management to the interpreter, if is carried out in Logic 0, or on a team, following to the team call, which this logic was caused. Jump < a LABEL > ------------ This team provides transfer of management on a team, beginning by a combination of symbols < a LABEL > inside this of this logic i.e. it is a team of unconditional transition. Set_scan_start ------------- Reset_scan_start --------------- In a normal condition the input(entrance) in logic on a team call occurs from the first team. The team set_scan_start establishs a point of an input(entrance), beginning with following for it(her) of a team, and reset_scan_start returns a point of an input(entrance) on a beginning. I.2.6.4 of a TEAM of MANAGEMENT by OBJECTS ==================================== The interpreter operates a movement of objects on the screen with automatic check of observance of the following conditions: 1. If the priority of object is equal 15, it(he) cannot cross a unconditional barrier (point of a background, have a priority 0). 2. If the priority of object is equal 15, and for him(it) a team ignore_blocks is not carried out, it(he) cannot cross a conditional barrier (point with a priority 1) and to fall outside the limits the block, given by the team block. 3. If for object a team ignore_horizon is not carried out, it(he) cannot appear above than line of horizon, established on the team set_horizon. 4. For object conditions, given by the teams object_on_water and object_on_land (see lower($below)), should be observed. Controlled object number 0 refers to as EGO and differs from other by that the user can operate his(its) movings from the keyboard. I.2.6.4.1 of a TEAM of the DESCRIPTION of OBJECTS =================================== Animate_obj ---------- The object with number n joins in the list of objects controlled by the interpreter. THE OBJECTS, NOT INCLUDED In SUCH LIST ARE CONSIDERED NONEXISTENT! Unanimate_all ------------ All objects are excluded from the list of management and are considered nonexistent. Set_view n, m ------------ Set_view_v n, m -------------- The object n contacts to a View-resource number m (or given Var (m)), which will serve the image of object. Set_loop n, m ------------ Set_loop_v n, m --------------- Choice of a cycle m (Var (m)) in a View-resource, connected to the object n. Fix_loop n --------- The interdiction of an automatic choice of number of a cycle for object with number n. Release_loop n -------------- Automatic choice of number of a cycle depending on a direction of a movement for object n is authorized. 1 8 ^ 2 \ ³ / \ ³ / 7 < ÄÄÄÄÄÅÄÄÄÄÄ > 3 0 - the object / ³ \ is motionless / ³ \ 6 v 4 5 Automatic choices of number of a cycle comes true under the table: - For objects, have less 4, but more than 1-th cycle: ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÂÄÄÄÂÄÄÄÂÄÄÄÂÄÄÄÂÄÄ ÄÂÄÄÄÂÄÄÄÂÄÄÄ · ³ Íàïð.äâèæ. ³ Costs (0) ³ 1 ³ 2 ³ 3 ³ 4 ³ 5 ³ 6 ³ 7 ³ 8 º ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄ ÄÅÄÄÄÅÄÄÄÅÄÄÄ ¶ ³ The cycle ³ * ³ * ³ 0 ³ 0 ³ 0 ³ * ³ 1 ³ 1 ³ 1 º ÔÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÏÍÍÍÏÍÍÍÏÍÍÍÏÍÍÍÏÍÍ ÍÏÍÍÍÏÍÍÍÏÍÍÍ ¼ * - means preservation of current number of a cycle. - For objects, have 4 and more cycles: ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÂÄÄÄÂÄÄÄÂÄÄÄÂÄÄÄÂÄÄ ÄÂÄÄÄÂÄÄÄÂÄÄÄ · ³ Íàïð.äâèæ. ³ Costs (0) ³ 1 ³ 2 ³ 3 ³ 4 ³ 5 ³ 6 ³ 7 ³ 8 º ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄ ÄÅÄÄÄÅÄÄÄÅÄÄÄ ¶ ³ Cycle ³ * ³ 3 ³ 0 ³ 0 ³ 0 ³ 2 ³ 1 ³ 1 ³ 1 º ÔÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÏÍÍÍÏÍÍÍÏÍÍÍÏÍÍÍÏÍÍ ÍÏÍÍÍÏÍÍÍÏÍÍÍ ¼ Set_cel n, m ----------- Set_cel_v n, m ------------- Choice of the staff m (Var (m)) in a current cycle of object n. Last_cel n, m ------------- Number of the last staff of a current cycle of object n is brought in Var (m). Current_cel n, m --------------- Number of the current staff of object n is brought in Var (m). Current_loop n, m ---------------- Number of a current cycle of object n is brought in Var (m). Current_view n, m ----------------- Number of a current View-resource, connected to the object n, is brought in Var (m). Set_priority n, m ---------------- Set_priority_v n, m ------------------- To establish a priority of the image of object n equal m (Var (m)). Release_priority n ------------------ To permit(solve) an automatic choice of a priority for object n. The priority is established depending on vertical êîîäèíàòû y of object. < Y < a priority ---------------------------- 0 48 4 48 60 5 60 72 6 72 84 7 84 96 8 9 Thus, the movement of object downwards means and approach(approximation) it(him) to the observer. Get_priority n, m ---------------- The meaning(importance) of a current priority of object n is brought in Var (m). Position n, x, y -------------- Position_v n, x, y ---------------- The meanings(importance) of coordinates of object n, which is not yet represented on the screen, are established equal x and y (Var (x) and Var (y)). Draw n ------ The object n is represented on the screen. For the image meanings(importance) of a cycle, staff in a view-resource, connected to the object n (see set_view [_v]), and also priority and coordinates, established to object are used. If thus a team start_cycling is given out, is provided infinite (for example, up to stop_cycling) "ïðîêðó÷èâàíèå" ìóëüòôèëüìà for object n. Erase n ------ The object n is erased from the screen. Get_posn n, x, y -------------- The meanings(importance) of coordinates of object n are brought in Var (x) and Var (y). The coordinates of object are understood as coordinates of a base point (left bottom corner) staff, serving by the image of the object n. The interpreter provides automatic "ïðîêðó÷èâàíèå" ìóëüòôèëüìà (cycle in a view-resource), connected with object, since the established staff. The following teams provide management of this process. Start_cycling n --------------- Automatic change of the staff in established (on set_loop [_v]) cycle of a view-resource, connected to the object n (on set_view [_v]) is authorized. Stop_cycling n -------------- Automatic change of the staff in established (on set_loop [_v]) cycle of a view-resource, connected to the object n (on set_view [_v]) is forbidden. Normal_cycle n -------------- The staff ìóëüòôèëüìà, connected with object n, follow in the usual order: 0, 1, 2,.., k-1, 0, 1, 2.. Reverse_cycle n --------------- The staff ìóëüòôèëüìà, connected with object n, follow in the return order: K-1, k-2,..., 1, 0, k-1, k-2, ..1, 0,.. End_of_loop n, m ---------------- Unitary execution(performance) ìóëüòôèëüìà, connected with object n from the current staff up to the latter. At achievement of the last staff Flag (m) is established in 1. Reverse_loop n, m ----------------- Unitary execution(performance) ìóëüòôèëüìà, connected with object n from the current staff up to first. At achievement of the first staff Flag (m) is established in 1. Cycle_time n, m --------------- Var (m) sets for object n time in cycles of interpretation between change of the staff. At Var (m) = 1 change of the staff occurs to each cycle. I.2.6.4.2 of a TEAM of MANAGEMENT by a MOVEMENT of OBJECTS ======================================= ======== To object, included in the list of objects, controlled the interpreter on a team animate_obj n, aplicable the following teams of management by his(its) movement: Set_horizon n -------------- Line of horizon (conditional horizontal line) with coordinate y = n is established. Ignore_horizon n ----------------- The object n moves outside of dependence on a rule(situation) of a line of horizon. Observe_horizon n ----------------- The object n cannot appear above than line of horizon. Block x1, y1, x2, y2 ------------------ To establish rectangular area (block). ( X1, y1) ÚÄÄÄÄÄÄÄÄÄ ¿ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÙ (x2, y2) Unblock ------- To cancel the block earlier established by a team block. Ignore_blocks n -------------- The object n moves outside of dependence on conditional barriers (points of a background with a priority 1) and block, established by the team block. Observe_blocks n --------------- Object n cannot cross of conditional barriers and to leave(abandon) limits of the block. Ignore_objs n ------------- Object n äâèæåòñÿ outside of dependence on a rule(situation) of other objects. Observe_objs n --------------- The object n reacts to other objects, as on insuperable obstacles. Player_control ------------- Management EGO (object with number 0), ñïîëüçóÿ the keyboard or äæîéñòèê is authorized. Program_control -------------- The management of object 0 (EGO) on the part of playing is blocked. Stop_motion n -------------- Movings object n are forbidden. If n = 0 (EGO), is automatically executed program_control. Start_motion n -------------- Movings object n are permitted. If n = 0 (EGO), is automatically executed player_control. Step_size n, m -------------- Variable Var (m) defines(determines) number of elements of display, on which object n for one step moves. Step_time n, m ------------- Var (m) defines(determines) speed of a movement of object n - delay in cycles of interpretation between the next steps. If Var (m) = 1, the step occurs on each cycle. Move_obj n, x, y, s, m ------------------- Move_obj_v n, x, y, s, m --------------------- To object n a movement in a point x, y (Var (x), Var (y)) with the size of a step s (Var (s)) is offered. On achievement of a final point Flag (m) is established in 1. If n = 0 (EGO), automatically program_control. Follow_ego n, s, m ---------------- The object n is offered to pursue object number 0 (EGO) with a step s. At concurrence of coordinates EGO and object n Flag (m) is established in 1. Wander n ------- The object n casually changes directions of the movement (áëóæäàåò). If n = 0 (EGO), automatically program_control. Normal_motion n --------------- From object n a movement is removed ïðåäïèñàííîå it(him). Object continues to move in that direction, in which it(he) moved before distribution of this team. Set_dir n, m ----------- Variable Var (m) sets to object n a direction of a movement. 1 ^ ³ ³ 7 < ÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄ > 3 0 - stop ³ ³ v 5 Get_dir n, m ----------- The direction of a movement of object n is brought in Var (m). Object_on_water n ------------------ The object n can be only in those places, where his(its) base is completely on points of a background with a priority 3 (level of water). Object_on_land n ----------------- The object n cannot concern to points of a background with a level of water (priority 3). Object_on_anything n -------------------- From object n restrictions, established by the teams object_on_water or object_on_land, are removed. Reposition n, dx, dy -------------------- Moving (ïðûæîê) object n from his(its) current rule(situation) with coordinates x, y in a point with coordinates x + Var (dx), y + Var (dy). Reposition_to n, x, y -------------------- Reposition_to_v n, x, y ---------------------- Are similar to the previous team, but the moving occurs in a point x, y (Var (x), Var (y)). Stop_update n ------------- The object n is excluded from the list of objects, which interpreter ïåðåðèñîâûâàåò on the screen on each step of interpretation. The object remains represented on the screen in a constant kind. Start_update n -------------- Object n ïåðåðèñîâûâàåòñÿ on each step of interpretation. Force_update n -------------- Object n immediately ïåðåðèñîâûâàåòñÿ on the screen, not waiting the termination(ending) of a cycle of interpretation. Distance n, m, d -------------- If the objects n and m are present on the screen, meaning(importance) Var (d) = ABS (x (n) - x (m)) + ABS (y (n) - y (m)), Differently(otherwise) Var (d) = 255. I.2.6.4.3 of a TEAM of WORK With SUBJECTS ===================================== For representation of subjects in system a Object-resource serves which is stored(kept) in a separate file OBJECT. by a SUBJECT structure, consisting of an one-byte cell, named room (room), and textual line, serving by the name of a subject, refers to as. If the meaning(importance) of a cell room for the given subject is equal 255, it is considered, that the subject belongs playing. It is otherwise considered, that the subject " is in a room " with number room. We shall consider teams of work with subjects. Get n ----- Get_v n ------- In a cell room of a subject n (Var (n)) meaning(importance) 255 is brought, that means his(its) fitting playing. Drop n ------ In a cell room of object n is brought 0. Put n, m -------- Put_v n, m ---------- In a cell room of object n (Var (n)) meaning(importance) variable Var (m) is brought. Get_room_v n, m --------------- The meaning(importance) of a cell room of object Var (n) is brought in Var (m). Status ----- The screen is translated in a textual mode, and in the top line there is the message " You are carrying: ", further in consecutive lines there are the names of subjects, for which the meaning(importance) of a cell room of object is equal 255. If such subjects are not present, a word "nothing is deduced(removed). If Flag (13) = 1 (permits to a team status a choice ïåðäìåòîâ), there is the line allocated with colour, allowing playing to choose the name of a subject. After pressing a key Enter, number of a chosen subject is brought in Var (25). At pressing Esc in Var (25) is brought 255. I.2.6.5 of a TEAM of WORK With PICTURE-resources ======================================= === To Picture-resources (volumetric scenery), which prepare with the help of the editor of the static images Picture Manager (pm) and loaded in memory of the interpreter of a team load_pic the following teams are aplicable: Draw_pic n ---------- Picture-resource number i, where i - the meaning(importance) Var (n), is executed. In result in the internal buffer of the interpreter there is the graphic image of a background. Before the beginning of execution(performance) the buffer is cleared, i.e. all his(its) points meaning(importance) of colour 15 and priority 4 is appropriated(given). Overlay_pic n -------------- The team in accuracy is similar previous, except that the internal buffer is not cleared. Picture (i), where i = Var (n), is drawn atop already íàðèñîâàííîãî of a background. Add_to_pic a, b, c, d, e, f, g ------------------------ Add_to_pic_v a, b, c, d, e, f, g -------------------------- To the image of a background the image of a View-resource as his(its) component is added. As a rule, it is fine details of the complex(difficult) form, which require(demand) plenties of teams Pictureðåñó¨¸ð). Here: A (Var (a)) - number View - resource; b (Var (b)) - number of a cycle; with (Var (c)) - number of the staff; d (Var (d)) - coordinate x; e (Var (e)) - coordinate y; f (Var (f)) - priority; g (Var (g)) - border. If the border is equal 0, 1, 2 or 3, the basis of the represented staff consists in a rectangular of the appropriate priority. If meaning(importance) border > 4, this additional border is not represented. Show_pic ------- The contents of the internal buffer of a background is deduced(removed) on the screen. ATTENTION! ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ At a load of picture-resources in memory of the interpreter is urgent it is recommended to adhere to the following sequence of teams: Load_pic n draw_pic n discard_pic n ............. Show_pic Other sequence of the operators with a large degree of probability will result(bring) in failure in work of the interpreter without distribution of the warning message. I.2.6.6 of a TEAM of WORK With SOUND-resources ======================================= = Sound n, m ----------- Begins execution(performance,!in the performance of) of a Sound-resource number n (melody, sound). On termination(ending) a melody Flag (m) is established in 1. Stop_sound --------- Execution(performance) of a melody stops. I.2.6.7 of a TEAM of WORK With the TEXT ================================ Prevent_input ------------ The team forbids playing input of symbols from the keyboard. Accept_input ----------- Playing input of symbols from the keyboard is authorized. Print n ------- Print_v n --------- In centre ýêðâàíà a textual window opens, in which message number n (Var (n)) from a field messages of current logic is deduced(removed). The mode of a conclusion of a window is defined(determined) Flag (15) (see the description of flags). The message represents a textual line, coming to an end in zero byte. Besides the letters, figures and marks, in a line can be: - Symbol of translation of a line (øåñòíàäöàòèðè÷íûé a code 0Ah); - Element of a format: %% - symbol of %; %v äåñÿòè÷í.íîìåð - on this place in the target message decimal meaning(importance) Var with the specified number will be substituted. %m number - on this place is substituted the text of other message with the specified number. %0 numbers - on this place a name of a subject with the specified number is substituted. %w number - on this place is substituted a word from the entrance message of the user with the specified number. %s number - on this place is substituted meaning(importance) line variable with the specified number. %g number - message with number from area messages of logic 0. For a format v after vertical feature it is possible to specify number of positions, which should borrow(occupy) deduced(removed) number. In this case, ëèäèðóþùèå zero in representation of number are not suppressed. Example: %v34 | 2 At formation of the messages it is necessary to take into account, that èíòåðïðåòòîð places the text of the message in a window by the whole words, doing(making) if necessary carry of the whole word on the following line. Attention! At a set of the messages instead of the large Russian letter And ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ it is necessary to type(collect) the large latin letter A, differently(otherwise) at a conclusion on the screen it(she) will be lost! Display R < ow >, C < olumn >, N < umber > ---------------------------------- Display_v R < ow >, C < olumn >, N < umber > ---------------------------------- The message with number N (Var (N)) in a line R (Var (R)), since a column C (Var (C)) is deduced(removed). The window thus does not form, and the programmer should think over, how to remove the deduced(removed) text. Print_at n, x, y, l ---------------- Print_at_v n, x, y, l ------------------ The team is similar print, however, here the programmer has an opportunity to choose a site of a window. X, y, l - constants, specifying coordinates of the top left corner of a window and his(its) width in çíàêîìåñòàõ of the textual of the screen (40 õ 25). Version ------ The team gives out in centre of the screen the information on the version of the interpreter. Text_screen ---------- The screen is switched in an alphanumeric mode 40 x 25. Graphics ------- The screen comes back in a graphic mode. All represented on the screen is restored. Set_cursor_char n ----------------- First byte of the message n gets out for representation of the cursor in a graphic mode. Set_text_attribute F < oreground >, B < ackground > --------------------------------------- ----- Colour of the letters F and background B for teams display, get_num, get_string gets out. Clear_lines n, m, C < olor > ----------------------- Textual lines with n-îé up to m-îé with use of colour C are cleared. Clear_text_rect x1, y1, x2, y2, C < olor > ----------------------------------- Rectangular textual area with coordinates left top (õ1, ó1) and right bottom (õ2, ó2) corners by colour C is cleared. Status_line_on -------------- Indication of a line of a condition, containing the current account (Score is authorized:) and condition of reproduction of a sound Sound: < on/off > (is included / switched off). Status_line_off -------------- The line of a condition leaves. I.2.6.8 of a TEAM of WORK WITH LINES ================================== Set_string n, m --------------- In line variable string (n) message with number m is remitted. Word_to_string n, m ------------------- Cëîâî number ì of the message of the user is remitted in line variable string (n). Get_string n, m, x, y, l -------------------- The line, entered with the keyboard, is remitted in line variable string (n). Thus: m - number of the message, which serves the invitation; x, y, l - set a position of input and maximum length of a line. Parse n ------- Analysis string (n) comes true how if this line was entered playing. Get_num n, m ----------- Input from the keyboard of number in Var (m). The message n serves the invitation. I.2.6.9 of a TEAM of INITIALIZATION ============================= Set_key s, c ------------ To establish a key, causing the special reaction of the interpreter: c - Code (decimal number from 0 up to 255 at the choice of the user); s - If a key usual, or pair Ctrl + key, appropriate ASCII a code (for example, 0009h - key TAB); - If a key functional, or pair Alt + key, appropriate Scan - code (in senior byte s). For example, scanêîä for F1 it 3b00h, for Alt + Z - 2c00h and etc.. Set_game_id n -------------- The message n is read out by the interpreter and is compared to his(its) internal identifier. If there is the discrepancy, the work is finished. For the interpreter AGDS of a package - it "TQ". Script_size n -------------- The size n of the script-table in bytes is defined(determined). To the script-table codes of some teams of the interpreter are brought in. It(she) is necessary that the interpreter could correctly place resources in memory of a team restore_game. Trace_info n, m, l ---------------- To establish parameters internal îòëàä÷èêà: n - Number of logic, containing the table of the names of teams. M, l - first line and height of a window îòëàä÷èêà. Trace_on -------- Team of inclusion îòëàä÷èêà. In general, îòëàä÷èê at the loaded table of the names of teams joins by pressing of a key Scroll Lock even if this team is not present at the program. Log n ------ This team debugging. It(she) allows to write down in a special file "magazine" a line: Room < a current room > Input line < the current line of input > further follows the message with number n. I.2.6.10 of a TEAM of MANAGEMENT the MENU ================================ Creating the program, you can provide situations, when playing it is offered to make a choice of several variants, using system the menu. It are the short questions (heading the menu), finding room in one line, with the several possible(probable) answers (elements the menu) or offer to change some parameters of the program, for example, speed of moving of objects. We shall consider these teams. Set_menu n ----------- The message n becomes heading of the elements following to it the menu. Set_menu_item n, c ------------------ The message n becomes an element the menu, where c - code (number from 0 up to 255) elements the menu at the choice of the user. Submit_menu ----------- Finishs formation the menu. Enable_item c -------------- Disable_item c --------------- It is authorized or work of elements the menu with the staff with is forbidden. ÚÄÄÄÄÄÄÄÄ heading v ÚÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ · ³ Fill º ÆÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ¼ Element ÄÄÄ > ´ Save º Menu ÃÄÄÄÄÄÄÄÄÄÄÄÄ ¶ ³ Restore º ÃÄÄÄÄÄÄÄÄÄÄÄÄ ¶ ³ XXXXXXXXXXXX Ç < ÄÄÄÄýëåìåíò the menu, for which ÃÄÄÄÄÄÄÄÄÄÄÄÄ ¶ Team ³ Quit º Disable_item ÔÍÍÍÍÍÍÍÍÍÍÍÍ ¼ Is carried out Menu_input --------- If Flag (14) = 1, on the screen there is the system of windows the menu, in which the user can make the choice. A choice of an element the menu with a code < c> can be checked ïðîãðàììíî at help(!through) of the team - test controller c, where with - code, appropriated(given) by the user to an element the menu. I.2.6.11 LOGIC TEAMS =========================== It is obvious, that for construction of the program teams, changing a course of its(her) fulfilment depending on any conditions, are necessary. For check of fulfilment of this or that conditions on a course of the program the teams - tests serve. I.2.6.11.1 of a TEAM the TESTS ======================== The result âûïîëíåèÿ of the teams - tests can accept only two meanings(importance) TRUE (true) or FALSE (ëîæü). Equaln n, m ----------- True, if Var (n) = m. Equalv n, m ---------- True, if Var (n) = Var (m). Lessn n, m ---------- True, if Var (n) < m. Lessv n, m ---------- True, if Var (n) < Var (m). Greatern n, m ------------- True, if Var (n) > m. Greaterv n, m ------------- True, if Var (n) > Var (m). Isset n ------- The true, if Flag (n) = 1 (is established). Isset_v n --------- The true, if Flag (i) = 1 (is established), where i - meaning(importance) Var (n). Has n ---- The true, if the meaning(importance) of a cell room of a subject n is equal 255, i.e. the subject belongs playing. Obj_in_room n, m --------------- The true, if meaning(importance) of a cell room of object n is equal Var (m). Posn n, x1, y1, x2, y2 ------------------ The true, if coordinates (x, y) of a base point of the staff, serving in the given moment by the image of the object n, satisfy to inequalities x1 < = x < = x2, y1 < = y < = y2. Obj_in_box n, x1, y1, x2, y2 ------------------------ The true, if base of object n is wholly inside a rectangular, given in coordinates left top (x1, y1) and right bottom (x2, y2) corners. ( X1, y1) ÚÄÄÄÄÄÄÄÄÄÄ ¿ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÙ (x2, y2) Center_position n, x1, y1, x2, y2 ------------------------------ The true, if centre of base of object n is inside a rectangular, given in coordinates left top (x1, y1) and right bottom (x2, y2) corners. Right_position n, x1, y1, x2, y2 ----------------------------- The true, if the right edge(territory) of base of object n is inside a rectangular, given in coordinates left top (x1, y1) and right bottom (x2, y2) corners. Have_key ------- The true, if the user has pressed on the keyboard any key. Is used for construction of cycles of expectation before pressing by the user of any key. Compare_strings s1, s2 ---------------------- True, if string (s1) = string (s2). Said n, W (i), where i = 1, n ------------ The true, if the user has entered a phrase, which was completely compared with W (1),... W (n), where n - quantity(amount) W (i), words being codes of the message. We shall describe more in detail process of comparison. After the user has typed in the message and has pressed a key ENTER (RETURN), the line of the message begins to be processed by the interpreter. 1. - the Interpreter deletes from a line all marks ïðåïèíàíèÿ. 2. - All letters will be transformed in lower case (small). 3. - All sequences from more than one blank are replaced with one blank. 4. - Since the first word of the message the interpreter begins search in the dictionary, trying to find in it(him) the longest sequence of symbols, conterminous with entered. If the search in the dictionary is unsuccessful, Var (9) number of a word in the message is appropriated(given), for which code, and work çàâåð øàåòñÿ is not found. If to all words of the message codes, are compared: - Interpreter deletes from a sequence of codes all zero (ò.î. All words in the dictionary, have a code 0, are ignored by the interpreter). - Flag (2) (from the user a line of input) has acted(arrived) is established in 1; - Flag (4) (the team said has apprehended input from the user) is established in 0. Let a sequence of codes, caused by the interpreter: V (1), V (2),... V (m). The instruction - test said is carried out as follows: --------------------------------------- ----------- If Flag (2) = 0 or Flag (4) = 1 to return meaning(importance) "ëîæü". Begins ïîïàðíîå comparison of parameters W (i) and codes V (i) with the following peculiarities: - If W (i) = 1, it is considered equal any V (i) (is compared to any word); - If W (i) = 9999, it is considered equal to the whole rest of a line, i.e. codes (V (i), V (i + 1),... V (m). Otherwise W (i) should coincide with V (i). If the concurrence is found out for all positions, Flag (4) (the team said has apprehended input from the user) is established in 1 and meaning(importance) "true", differently(otherwise) meaning(importance) "ëîæü" comes back. Controller n ------------- The true, if has taken place event with a code n: - Key with a code n, established by a team set_key is pressed; - choice of an element the menu with a code n on a team menu_input is made. I.2.6.11.2 a GENERAL(COMMON) FORMAT of a LOGIC TEAM ======================================= === The interpreter of a package provides an opportunity of work with logic expressions within the framework of a logic team. A general(common) format of a logic team following: If_; if logic expression; result true? Else_ a LABEL; is not present: transition on a LABEL; yes: to carry out teams, ................; made between; else_ and LABEL a LABEL:..................; .................. The logic expression is meaningful only within the framework of a logic team and represents a sequence of the teams - tests and allowable operations above(over) them, made between the operators if_ and else_. It is true, if all elements included in him(it) are true. The following logic operations above(over) the teams - tests are certain(determined) which we shall result(bring) by way of reduction of a priority at fulfilment: - Logic denying (the team not_, distributes the action to the team - test, following for it(her)); - Logic multiplication (conjunction). It is carried out by default above(over) a sequence of the teams - tests, making logic expression; - Logic addition (disjunction). It is made above(over) group of the teams - tests, beginning and coming to an end line, consisting of the team or_. Thus, team or_ it is possible to name as a disjunctive bracket. If the meaning(importance) of logic expression is true, teams, following to the logic instruction, are carried out, if is false, there is the transition to the instruction, labelled a LABEL:. We shall result(bring) a few examples of use of logic teams and calculation of logic expressions. Example 1. ~ ~ ~ ~ ~ ~ ~ ~ ~ Assignn 35, 10; v35 = 10 set 24; f24 - > 1 If_; if equaln 35, 10; v35 = 10 and (conjunction by default) isset 24; f24 is established in 1? Else_ A; is not present: transition to a label A; yes: sound 25, 52; to execute a sound 25, on the termination(ending) f52 - > 1 return; return of management A: Sound 30, 52; to execute a sound 30, on the termination(ending) f52 - > 1 ............ Here above(over) the teams - tests by default logic multiplication is made, the result of which matters TRUE. Therefore a sound number 25 will be executed and management the interpreter (is returned if we are in logic 0) or on a team, following to a team of a call of the subroutine (call or call_v) in the causing program. Example 2. ~ ~ ~ ~ ~ ~ ~ ~ ~ Assignn 35, 40; v35 = 10 set 24; f24 - > 1 If_; if equaln 35, 40; v35 = 10 and (conjunction by default) not_; not isset 24; is established (in 1) f24? Else_ A; is not present: transition to a label A; yes: sound 25, 52; to execute a sound 25, on the termination(ending) f52 - > 1 return; return of management A: Sound 30, 52; to execute a sound 30, on the termination(ending) f52 - > 1 ............ We shall analyse execution(performance) of this fragment. The result êîìàíäûòåñòà equaln 35, 40 is TRUE, sequence not_ isset 24 (the denying is carried out first of all) is FALSE and, hence in result of logic multiplication, carried out by default we shall receive FALSE, that will result(bring) to execution(performance) of a sound number 30. Example 3. ~ ~ ~ ~ ~ ~ ~ ~ ~ Assignn 25, 10; v35 = 10 set 24; f24 - > 1 reset 25; f25 - > 0 If_; if isset 24; f24 is established in 1 and (conjunction on; to default) or_; an opening disjunctive bracket greatern 25, 11; or v25 > 11 not_; or not isset 25; is established (in 1) f25 or_; a closing disjunctive bracket; result TRUE? Else_ A; is not present: transition to a label A; yes: sound 25, 52; to execute a sound 25, on the termination(ending) f52 - > 1 return; return of management A: Sound 30, 52; to execute a sound 30, on the termination(ending) f52 - > 1 ............ Result of fulfilment of this fragment of the program will be execution(performance) of a sound number 25, since greatern 25, 11 - FALSE, not_ isset 25 TRUE, logic addition of these results - TRUE and fulfilment (by default) logic multiplication above(over) (isset 24 - TRUE) and result of logic addition - TRUE. If after a perusal of the given section to you not yet everyone clearly address to the initial texts of the training program "THUNDER-STORM" ÈÍÒÅÏ (Ñ) and analyse them independently. I.2.6.12 OTHER TEAMS ======================= Configure_screen a, b, c ----------------------- To define(determine) a site of lines on the screen: a = 1 (it is the minimum number of a line for print); b - line of input of the messages of the user; with - line of a condition (status line). Obj_status_v n --------------- For object Var (n) message is deduced(removed): Obj < number > x: < coordinate > y: < coordinate > pri: < a priority > stepsize: < the size of a step >. Show_mem -------- The message on a condition of memory of the interpreter is deduced(removed). Show_pri_screen --------------- Condition of priorities of points of the screen is deduced(removed). A priority number n is coded by colour n (ñì.êîìàíäû of installation of colour in I.2.1.1). Show_obj n ----------- In centre below of the screen the staff 0 ö èêëà 0 View-resources number n is deduced(removed). In centre of the screen the description, connected with Viewðåñóðñîì, is printed. Shake_screen n --------------- The screen "is stirred up" n of time. Echo_line --------- In a line of dialogue with the user the last line entered by him(it) is restored. Cancel_line ----------- The line of dialogue is cleared. Close_window ------------ If any textual window is on the screen, it leaves. Open_dialogue ------------ Close_dialogue -------------- Permits and forbids work of teams get_string and get_num, if a team prevent_input is carried out. Restart_game ------------ Causes fulfilment of the program from the very beginning. Save_game --------- Restore_game ------------ These teams provide an opportunity of preservation and restoration of a current condition of game from files on a disk. Pause ---- Stop of the interpreter before pressing any key. Quit n ------- End of work of the interpreter. If n = 1, immediate end; n = 0, a question " Press ENTER to quit. " " Press ESC to continue. " Init_joy ------- Initialization äæîéñòèêà. Toggle_monitor ------------- Switching RGB of the monitor in a graphic mode. Upper_left --------- Usually crossing by object of given areas or lines îòñëåæèâàåòñÿ on a base point of the staff (left bottom corner). After distribution of this team, such by a point there is the left top corner of the staff. I.2.7. GENERAL(COMMON) PRINCIPLES of WORK of the INTERPRETER ======================================= ==== We shall now consider algorithm of work of the interpreter and purpose(assignment) çàðåçåðâèðîâàííûõ variable and flags. After start of the program AGI (AGDS), in memory of the interpreter a Logic-resource number 0 is loaded which remains there on all time of fulfilment èãðîâîé of the program and defines(determines) all actions of the interpreter, connected to general(common) management by game. The interpreter works cyclically, i.e. all actions of the interpreter are rigidly defined(determined) by a CYCLE of WORK of the INTERPRETER, the block diagram of which is resulted(brought) below. During fulfilment of a cycle the interpreter makes the following basic actions: - Delay on time; - Clearing the buffer of the keyboard; - Interrogation of the keyboard and äæîéñòèêà; - Analysis of a part çàðåçåðâèðîâàííûõ variable and flags (ñì.áëîêñõåìó); - For all controlled objects, for which teams animate_obj, start_update and draw were carried out, recalculation of directions of a movement is made; - Carries out logic 0 and all caused from it(her) logic, which as can carry out calls other ëîãèê. Depending on a condition variable and flags, the analysis of which is made in a step 4, i.e. is defined(determined) by the program of game, the quantity(amount) interpretive in a step 4 teams changes from a cycle to a cycle in dependence, for example, from quantity(amount) of a caused on - situation ëîãèê; - Check on distribution of a team new_room is made; - Then the cycle of interpretation repeats. All simultaneously loaded in memory of the interpreter of logic (program and the subroutines) manipulate above(over) a general(common) field variable, flags and line variable, identified unique for each type of data number. Öèêëè÷íîñòü of work of the interpreter the print on general(common) principles of a spelling and style of the programs, carried out under the control of the interpreter AGDS imposes, that does(makes) process of programming of a little bit unusual and requiring(demanding) certain(determined) period "âæèâàíèÿ". For example, the majority cyclic äåéñòèé, requiring(demanding) in the "habitual" programming languages of obvious input of cycles, is carried out in the programs, written for the interpreter, by default, but requires(demands) their appropriate organization. The general(common) recommendations, ñîêðàùàþùèå period of adaptation to language of the interpreter, will be given later on an example of creation of the training program "THUNDER-STORM" ÈÍÒÅÏ (Ñ), that does not completely exclude the independent analysis èãðîâûõ of the programs of firm Sierra On Line, Inc. (C). CYCLE of WORK of the INTERPRETER --------------------------- ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ · ³ 1 delay on time º ÔÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ ¼ ³ V ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄ · ³2 Clearing the buffer of the keyboard º ÔÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ ¼ ³ V ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄ · ³ Flag (2) - > 0 º ³ Flag (4) - > 0 º ÔÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ ¼ ³ V ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ · ³ 3 interrogations of the keyboard and äæîéñòèêà º ÔÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ¼ ³ V ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ · ³ If a mode º ³ - program_control, a direction º ³ Movement EGO - > var (6) is established. º ³ - player_control, var (6) îïðåäå- º ³ Ëÿåò a direction of a movement EGO. º ÔÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ¼ ³ V ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ · ³ For all controlled objects, for which teams animate_obj, start_update and draw were carried out º ³, is made º ³ Recalculation of directions of a movement. º ÔÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍ ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ¼ ³ V ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ · ³ At change of the account of game (var (3)) or âêë./âûêëþ÷åíèè of a sound, º ³ Determined Flag (9) in a line of a condition (if is) new condition of system º ÔÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍ ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ¼ Is deduced(removed) º ³ ÀÄÄÄÄÄÄÄÄÄ ¿ V ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄ · ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ > ´ 4 is executed Logic 0 º ³ ÔÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍ ¼ ³ ³ ³ V³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ · ³ ³ - Íàïð.äâèæåíèÿ EGO < - var (6); º ³ ³ - If the account (var (3)) or Flag (9) º ³ ³ Have changed the meaning(importance) - îáíî- º ³ ³ Âèòü the status and account (on Var (3)); º ³ ³ - Var (5) - > 0; º ³ ³ - Var (4) - > 0; º ³ ³ - Flag (5) - > 0!!!! º ³ ³ - Flag (6) - > 0; º ³ ³ - Flag (12) - > 0. º ³ ÔÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ¼ ÚÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄ · ³ ³ To carry out: º V³ ~ ~ ~ ~ ~ ~ ~ ~ ~ º ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ · ³ - stop_update; º ³ Ïåðåðèñîâàòü all controlled º ³ - unanimate_all; º ³ Objects, being on ýêðàíå. º ³ - to destroy all º ÔÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ¼ ³ All logic-resources º ³ ³ Except logic 0; º V ³ - player_control; º ÚÄÄÄÄÄÄÁÄÄÄÄÄÄ · ³ - unblock; º ³ Is given º ³ - set_horizon 24; º ³ Team º ³ - var (1) = var (0); º ³ New_room n º ³ - var (0) = n | (var (n));º ³ Or º ³ - var (4) = 0; º ³ New_room_v n? º ³ - var (5) = 0; º ÃÄÄÄÄÄÄÂÄÄÄÄÄÄ ¶ ³ - var (9) = 0; Ç < ÄÄÄÄÄÄÄÄÄÄÄ ´ Yes ³ Is not present º ³ - var (16) = number view, º ÔÍÍÍÍÍÍÏÍÍÍÑÍÍ ¼ ³ Ñâÿç.ñ EGO; º ³ ³ - Êîîðä. EGO on var (2); º ³ ³ - var (2) = 0; º ³ ³ - flag (2) - > 0; º V ³ - flag (5) - > 1!!!! º ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄ · ³ - account < - var (3); º ³ To proceed(pass) to a step 1 º ÔÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ¼ ÔÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ¼ VARIABLE, USED BY THE INTERPRETER --------------------------------------- - At start of the interpreter of meaning(importance) all variable are equal 0. Var n ---- 0 - Number of a current room (parameter of a team new_room), originally 0. 1 - Number of the previous room. 2 - The code of border, which has touched EGO: 0 - Has not touched; 1 - Top edge(territory) of the screen or line of horizon; 2 - right edge(territory) of the screen; 3 - Bottom edge(territory); 4 - Left edge(territory). 3 - Current account. 4 - Number of object, excellent(different) from EGO, touching border. 5 - The code of border, which has touched object with number Var (4). 6 - Direction of a movement EGO. 1 8 ^ 2 \ ³ / \ ³ / 7 < ÄÄÄÄÄÅÄÄÄÄÄ > 3 0 - the object / ³ \ is motionless / ³ \ 6 v 4 5 7 - Maximum account. 8 - Number free 256-áàéòíûõ of pages in memory of the interpreter. 9 - If = 0, it is number of a word in the message of the user, which is not found in the dictionary. 10 - Temporary delay between cycles of interpretation a 1/20 second. 11 - Second | 12 - Minute | 13 - Hours | internal hours of the interpreter. 14 - day | 15 - Sensitivity äæîéñòèêà (if Flag (8) = 1). 16 - Number View - resource, connected with EGO. 17 - Code of an error of the interpreter (if = 0). 18 - Additional information to a code of an error. 19 - Symbol, pressed on the keyboard. 20 - Code as the computer. For IBM PC it always 0. 21 - If Flag (15) = 0 (team reset 15) is given and Var (21) is not equal 0, the window automatically leaves through 1/2 * Var (21) seconds. 22 - Type of the generator of a sound: =1 - PC; =3 - TANDY. 23 - 0: F - loudness of a sound (for TANDY). 24 - 29h. 25 - Number of a subject, chosen on the team status or FF, if a key ESC is pressed. 26 - Type of the monitor: 0 - CGA; 2 - Hercules; 3 - EGA. FLAGS, USED by the INTERPRETER ---------------------------------- At start of the interpreter all flags are established in 0. Flag n ----- 0 - The base EGO is completely on points of a background, have a priority 3 (3 levels). 1 - EGO is not seen on the screen (is completely latent by any object). 2 - From playing a line of input has acted(arrived). 3 - The base EGO has touched a point of a background, have a priority 2 (2 signals. 4 - The team said has apprehended input from the user. 5 - The new room is executed for the first time. 6 - Team restart_game is carried out. 7 - If this flag = 1, the record in the script-buffer is blocked. 8 - If 1, Var (15) defines(determines) sensitivity äæîéñòèêà. 9 - The sound is included / switched off. 10 - 1 permits work built - in îòëàä÷èêà. 11 - Logic 0 is caused for the first time. 12 - Team restore_game is carried out. 13 - 1 permits to a team status a choice of subjects. 14 - 1 permits work the menu. 15 - Mode of a conclusion of the messages by teams print and print_at: 1 - The window with the messages does not leave from the screen. 0 - the window leaves by pressing Enter or ESC on the keyboard. If Var (21) is not equal 0, the window automatically leaves through 1/2 * Var (21) seconds. PART II. a Package AGDS ====================== Structure of a package AGDS enter: - Graphic editor of the static images (scenery) Picture Manager (PM); - Graphic editor of the dynamic images (ìóëüòôèëüìîâ) VIew Manager (VIM); - Utility for work with volumes of data: - Volume Manager (VM); - Directory Update Utility (DUU); - Utility of service of objects Object Manager (OM); - Utility of work with the dictionary of system (file words.tok): - viewing of the dictionary Words Look (WL); - creation of the dictionary Words Make (WM); - Utility of restoration of the initial texts of the programs Source Manager (SM); - Interpreters with overlay files: - adapted (AGDS); - original (AGI). II.1. GRAPHIC EDITOR of the STATIC IMAGES ======================================= =========== THE PROGRAM PM (Picture Manager) ============================== The graphic editor Picture Manager (PM), is intended for creation static êàðòèíîê (picture-resources) in structure of a package AGDS. The editor will help to you to create and to edit the images in a format of picture-resources of the program AGI. The requirements to the equipment the COMPUTER: - Machine, compatible at the level BIOS with IBM PC; - 100 % the compatible graphic controller EGA or VGA; - free operative memory from 128Ê; - Device "Mouse", compatible with Microsoft Mouse or Mouse Systems Mouse. The requirements to the software: - Operating system, compatible with MS DOS 3.0 and higher($above); - driver of the device "Mouse", even if the device is not present. Work with the program PM ----------------------- The command line of the program looks as follows: PM [èìÿ_âõîäíîãî_ôàéëà [èìÿ_âûõîäíîãî_ôàéëà]] èìÿ_âõîäíîãî_ôàéëà - Name of a file, being subject to editing; èìÿ_âûõîäíîãî_ôàéëà - Name of a file, written down on the team "W; If èìÿ_âûõîäíîãî_ôàéëà is not specified, on a team "W current contents of the buffer are written down in a file PIC.SAV; At an output(exit) from the program the current contents of the buffer is written down in a file PIC.OLD. The further description means, that you know graphic ïðèìèòèâû picture of a resource. They are described in I of a part of the description of a package AGI. Kind of the screen by work of the program -------------------------------- ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ · ³ º ³ º ³ º ³ º ³ º ³ Field of editing of the image º ³ º ³ º ³ º ³ º ³ º ÆÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ¹ ³ Line of display of a condition of the buffer º ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ¶ ³ Line of a conclusion of the messages º ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ¶ ³ Line of input º ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ¶ ³ 111:222/3 flew. < 4:5> ýêð. < 6:7> ïîç.8888 º ÔÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ÍÍÍÍÍÍ\ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ¼ > Line of a conclusion of a condition of the program / ------------------------------------ The field of editing of the image represents a graphic field by the size 160õ168, in which you draw with the help of teams of the editor. The line of display of a condition of the buffer shows you contents of the buffer graphic ïðèìèòèâîâ. In a line of a conclusion of the messages the editor deduces(removes) the help in case of your incorrect actions. The line of input informs you that it is necessary to enter into the program in the given moment. On a line of a conclusion of a condition you can learn(find out) òåêóøèå of coordinate of drawing, current colour and other information. We shall now consider more in detail purpose(assignment) of each part of the screen. Field of editing of the image -------------------------------- The image in the editor can turn out by two ways: - If you enter from the keyboard graphic teams, the result of their fulfilment is at once displayed on the screen, as in the usual graphic editor; - As êàðòèíêà is result of fulfilment of a sequence of graphic teams, you can execute a sequence stored(kept) in the buffer of teams from a beginning up to any place in the buffer (this action "BLANK") is carried out with the help of a key. Thus you will see on the screen result of fulfilment only of these teams. Thus, gradually moving together the current index of the buffer to the end, and executing graphic teams, you can look after process of drawing. In a field of editing there is the cursor, îñòðèå which specifies a current position of drawing. To move the cursor it is possible or with the help of the Mouse or from the keyboard with the help of arrows(pointers). Line of display of a condition of the buffer ------------------------------------ Purpose(assignment) of a field in a line of display of a condition of the buffer you can define(determine) with the help of colour of a field. Dark - dark blue colour - inaccessible fields of the buffer (they contain the information, not intended for editing); Yellow colour - current position of the buffer of teams; Ìàëèíîâûé colour - field containing a code of a graphic team; Light-blue colour - field containing operands of a graphic team. The information in fields is submitted in øåñòíàäöàòèðè÷íîì a kind. For work with the buffer of teams you can use the following teams: - Ctrl + - > (ïðàâàÿ_ñòðåëêà) - moving of a current position to the right on one position of the buffer of teams; - Ctrl + < - (ëåâàÿ_ñòðåëêà) - moving of a current position to the left on one position of the buffer of teams; - PgUp - moving of a current position to the left on one team; - PgDn - moving of a current position to the right on one team; - Home - moving to a beginning of the buffer of teams; - End - moving to a team " the end of work " (code ff) or in the end of the buffer if her(it) is not present; - Insert - to insert byte in a current position (you should consistently enter two øåñòíàäöàòèðè÷íûå of figure, at first senior, then younger); - Delete - to remove byte in a current position (be very cautious using this team, if you are poorly familiar with a format graphic ïðèìèòèâîâ do not use her(it) absolutly!); - "BLANK" - to execute graphic teams, from a beginning of the buffer up to a current position (if the current position is among operands of a team, it(she) will be carried out not with all operands); - H - brief help. The information on the screen is represented in the following kind: Picture Manager V3.0 ÄÄÄÄÄÄÄÄÄÄÄÄÄÐèñîâàíèåÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄ ÄÄÄÄÄÄÄÄÄÄÄÄÏðî÷èå êîìàíäûÄÄÄÄÄ F1 - to establish colour ³ Arrow(pointer) - moving of the cursor F2 - to establish a priority ³ P - viewing of a field of priorities F3 - ðèñ.ëèíèþ, since a vertical ³ S - search of a code of a team in the buffer F4 - ðèñ.ëèíèþ, since a horizontal ³ W - to keep the current buffer F5 - ðèñ.ëèíèèþ in the general provisions ³ 0-9, A-F - input øåñòí.çíà÷åíèé F6 - ðèñ.ëèíèþ ïðèðàùåíèÿìè, ³ / - conclusion of coordinates øåñòí.èëè F7 - çàëèâêà of area ³ Äåñÿòè÷. F8 - Óñò.ïàðàì. Points ³ Q-output from the program F9 - íàðèñîâàòü a point ³ Altôóíê.êëàâèøà or ESC-ïðåêð.êîìàíäû ³ ÄÄÄÄÄÄÄÄÐàáîòà with the buffer êîìàíäÄÄÄÄÄÄ ´ Ctrl < - Ctrl- > - ïåðåì.â the buffer of teams ³ Home - In a beginning of the buffer of teams ³ End - In the end of the buffer of teams ³ PgUp - Ahead on a team ³ PgDn - Back on a team ³ Ins - To insert byte ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Del - to remove byte ³ (C) ÝËÈÀÑ tel: 903-04-57 BLANKS - èñïîëí.êîìàíäû up to current ÃÄÄÄÄÄÄÄÄÄÄ fax: 903-02-66ÄÄÄÄÄÄÄÄ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Press a key ESC for return in the program Line of a conclusion of the messages ---------------------- Line of input ----------- The messages appearing in these fields do not require(demand) the explanatories. Line of a conclusion of a condition of the program -------------------------------- This line has the following format: 111:222/3 flew. < 4:5> ýêð. < 6:7> ïîç.8888, where 111 - Current coordinate X; 222 - Current coordinate Y; ( If these coordinates cost in round brackets, means numbers øåñòíàäöàòèðè÷íûå. The switching occurs at pressing a key "/"). 3 - Coordinate on Y, ïåðåñ÷èòàííàÿ in a priority (ñì.îïèñàíèå pictureðåñó¨¸ð); 4 - Current colour (that, which is established by a team TO ESTABLISH COLOUR); 5 - Current priority (that, which is established by a team TO ESTABLISH a PRIORITY); 6 - Colour of a current point of the screen; 7 - Priority of a current point of the screen; 8888 - Current position in the buffer of teams. Teams of drawing ------------------ The key F1 - " TO ESTABLISH COLOUR " brings in the buffer of teams a code f0. The key Alt + F1 - " TO CANCEL COLOUR " brings in the buffer of teams a code f1. The key F2 - " TO ESTABLISH a PRIORITY " brings in the buffer of teams a code f2. The key Alt + F2 - " TO CANCEL a PRIORITY " brings in the buffer of teams a code f3. The key F3 - " TO DRAW a LINE SINCE VERTICAL " brings in the buffer of teams a code f4. The key F4 - " TO DRAW a LINE SINCE HORIZONTAL " brings in the buffer of teams a code f5. The key F5 - " TO DRAW a LINE In the general PROVISIONS " brings in the buffer of teams a code f6. Pay attention, that from for errors in the program AGI, the long line can be íàðèñîâàíà incorrectly. We in this case recommend to break her(it) on shorter. The key F6 - " TO DRAW a LINE THROUGH ÏÐÈÐÀÙÅÍÈß " brings in the buffer of teams a code f7. After distribution of this team of moving of the cursor 7 positions, and on a horizontal with the party of reduction - 6 positions) are limited a plus / minus. The key F7 - "ÇÀËÈÂÊÀ" brings in the buffer of teams a code f8. To fill it is possible only white area! (See the description of a picture-resource). The key F8 - " TO ESTABLISH PARAMETERS of a POINT " brings in the buffer of teams a code f9. In reply to an inquiry you need to enter: 0 - Round point; 1 - Square point; 2 - Round point with çàëèâêîé 1/3 area; 3 - square point with çàëèâêîé 1/3 area. Then - number from 0 up to 7 - size of a point. The key F9 - " ÍÀÐÈÑÎÂÀÒÜ a POINT " brings in the buffer of teams a code fa. If parameters of a point with çàëèâêîé are established, you should enter two any øåñòíàäöàòèðè÷íûå of figure from which rule(situation) of points çàëèâêè depends. The key F10 - " the END of WORK " brings in the buffer of teams a code ff (only!). Other teams --------------- For viewing a field of priorities press a key "P. Return on pressing any key. The key " S' is used for search of a code of a team in the buffer. The search comes true from a current position in the party of the end of the buffer. Pay attention, that for search it is necessary to specify only second figure of a code of a team. The output(exit) from the program comes true at pressing on a key "Q. The inquiry on confirmation of an output(exit) from the program is not given out, as the contents of the buffer always appear in a file PIC.OLD. --------------------------------------- ------------------------------- If at start of the program the cursor is not in centre of the screen, and at the right edge(territory), before start of the program give out a team DOS'à SET PM=/2. This situation arises if you use not Microsoft Mouse Driver, and other ìûøèíûé the driver. And if at start there are not enough lines with the text below of the screen, try to give a team DOS'à SET PM=/S. If it will not help, ýíà÷èò you use not 100 % compatible with IBM EGA the graphic controller. It is possible also to try to replace èñïîëüçóåèûé by you ìûøèíûé the driver on more Microsoft compatible. If necessary both keys can be specified together. The team SET can be included in your file AUTOEXEC.BAT. II.2. GRAPHIC EDITOR of the DYNAMIC IMAGES ======================================= ============ THE PROGRAM VIM (VIew Manager) ============================= The graphic editor View Manager (VIM), is intended for creation dynamic êàðòèíîê (view-resources) in structure of a package AGDS. The editor will help to you to create and to edit the images in a format of view-resources of the program AGI. The requirements to the equipment the COMPUTER: - Machine, compatible at the level BIOS with IBM PC; - 100 % the compatible graphic controller EGA or VGA; - free operative memory from 128K. The requirements to the software: - Operating system, compatible with MS DOS 3.0 and higher($above); Work with the program VIM ---------------------- The command line of the program looks as follows: VIM [-êîëè÷åñòâî_öèêëîâ èìÿ_âõîäíîãî_ôàéëà [èìÿ_âûõîäíîãî_ôàéëà]] èìÿ_âõîäíîãî_ôàéëà - Name of a file, being subject to editing; èìÿ_âûõîäíîãî_ôàéëà - Name of a file, written down on the team "W; (if èìÿ_âûõîäíîãî_ôàéëà is not specified, on a team " W'òåêóùåå contents of the buffer are written down in a file VIEW.SAV); êîëè÷åñòâî_öèêëîâ - Quantity(amount) of cycles in again formed viewðåñóðñå; At an output(exit) from the program the current contents of the buffer is written down in a file VIEW.OLD. The further description means, that you know bases îðãàíèèçàöèè of animation in a package AGDS. They are resulted(brought) in I parts of the description of a package. Kind of the screen by work of the program ------------------------------ ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ » º º º º º º º º º º º Field of editing of the image º º º º º º º º º º º ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ¹ º 111:222/3 cycle: 44 staff: 55 66x77 colour 0123456789ABCDEF º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ÍÍÍÍÍÍÍÍÍÍÍÍÍ\ÍÍÍÍÍÍÍÍÍÍÍ ¼ > a Line of a conclusion of a condition of the program / ------------------------------------ The field of editing of the image represents a graphic field by the size 40õ41, in which you draw the staff ìóëüòôèëüìà, setting colour of each point of the image separately. On a line of a conclusion of a condition you can learn(find out) òåêóøèå of coordinate of drawing, colour of a current point and other information. We shall consider more in detail purpose(assignment) of each part of the screen. Field of editing of the image ------------------------------ The field of editing of the image is shown ÷åòûðåõêðàòíî by(with) the increased staff ìóëüòôèëüìà. You can also see the staff full-scale, but the editing is admitted(allowed) only on the increased image. In a field of editing there is the cursor as ìåðöàþùåãî of a rectangular. To move the cursor it is possible from the keyboard with the help of arrows(pointers). If the size of the staff exceeds the sizes of a field of editing, at moving the cursor adroad fields the image will be moved together (as in the text editor). Pressing a key 0-9 and A-F, you put in a position of the cursor a point of the appropriate colour. Line of a conclusion of a condition of the program -------------------------------- This line has the following format: The help on conformity of keys to colour ÄÄÄÄÄÄÄÄÄ > ¿ ÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄ 111:222/3 cycle: 44 staff: 55 66x77 colour 0123456789ABCDEF ÄÂÄ ÄÂÄ In ÄÄÄÂÄÄÄ ÄÄÄÂÄÄÄ ÂÄ Ä ³ ³ ³ ³ ³ ³ ³ À> ÄÄÅÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÅÄÄÄÄÄÄÄ current coordinate X; ³ ³ ³ ³ ³ ³ À> ÄÅÄÄÄÄÄÅÄÄÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÅÄÄÄÄÄÄÄ current coordinate Y; ³ ³ ³ ³ ³ À> ÄÄÄÄÅÄÄÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÅÄÄÄÄÄÄÄ colour of a current point of the screen; ³ ³ ³ ³ À> ÄÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÅÄÄÄÄÄÄÄ number of a current cycle; ³ ³ ³ À> ÄÄÄÄÅÄÄÄÅÄÄÄÄÄÄÄ number of the current staff; ³ ³ À> ÄÄÅÄÄÄÄÄÄÄ the size of the current staff ³ On a horizontal; ³ À> ÄÄÄÄÄÄ the size of the current staff on a vertical; Teams of the program ---------------- We shall consider all teams of the program VIM. 0-9, A-F - to draw a point of the appropriate colour in a position of the cursor; Arrows(pointer) - ïåðåìåøåíèå of the cursor; > - transition to the following staff of a cycle; < - transition to the previous staff of a cycle; ] - transition to the staff 0 following cycles; [ - transition to the staff 0 previous cycles; Z - Change of the sizes of the staff (be cautious! The contents of the staff is lost); I - Construction of the symmetric image to existing; \ - complete updating of the screen at change of the staff. Allows correctly to display the staff of the different size in one cycle; G - Switching scale of the image (editing / viewing) in scale 1:1 (viewing) teams <, >, [,] work only. Other cause return in a mode of editing; S - Record of the current staff in a separate file. The name will be formed of number of a cycle, mark ïîä÷åðêèâàíèÿ and number of the staff. Ñóôôèêñîì in a name of a file number view-ðåñóðñà is; L - To add in òåêóøèé a cycle the staff, contained in a file (kept earlier by the team kept earlier By a team kept that the files, formed on the teams S, are used only by the program VIM; W - Preservation of the whole view-resource in a file; H - Brief help. The information on the screen is represented in the following kind: View Manager V2.0 ÄÄÄÄÄÄÄÄÄÄÄÄÄÐèñîâàíèåÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄ ÄÄÄÄÄÄÄÄÄÄÄÏðî÷èå êîìàíäûÄÄÄÄÄÄÄ 0-9, A-F - to draw a point ³ \ - the clearing of the screen before ³ Drawing an arrow(pointer) - moving of the cursor ³ G - switching of scale 4:1/1:1 ³ (drawing / viewing) ] - the following cycle ³ ³ S - preservation of the staff > - following staff ³ ³ L - load of the staff [- previous cycle ³ ³ W - preservation of a resource < - previous staff ³ ³ Q - output(exit) from the program INS - to add the staff ³ ³ DEL - To remove the staff ³ ³ Z - Change of the sizes of the staff ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ³ (C) ÝËÈÀÑ tel: 903-04-57 I - To construct the symmetric staff ÃÄÄÄÄÄÄÄÄÄÄÄ fax: 903-02-66ÄÄÄÄÄÄÄÄÄ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Press a key ESC for return in the program Q - Closing -up with the program; At editing an existing view-resource, the information on quantity(amount) of cycles, staff and sizes of the staff undertakes from a view-resource. At creation of a new resource, VIM creates the specified quantity(amount) of cycles, each of which contains on one staff by the size 4õ4. You can arbitrary add the new staff and to change the sizes existing. It is impossible to change only quantity(amount) of cycles in a view-resource. II.3. UTILITY of WORK With VOLUMES of GIVEN(DATA) ==================================== II.3.1. PROGRAM VM (Volume Manager) ===================================== Is intended for extraction from volumes and addition to volumes logic-, picture-, view-, sound-resources. Works in dialogue. At once after start the program requests a name of a file of the indexes (Directory) - íåáõîäèìî to answer by a complete name LOGDIR, VIEWDIR, SNDDIR or PICDIR (the register of symbols is not important). The following step: the program requests function (L/E/A/Q) -------- It is necessary to answer by one letter: L (List) - prints out contents of a file of the indexes in a format: Íîìåð_ðåñóðñà íîìåð_òîìà: ñìåùåíèå_â_ôàéëå For example: 1 V0:4DF4 2 V0:503E 3 V2 22DEE and etc.; In ÂÄ ÄÂÄÄ À> ÅÄÄÄÅÄÄÄÄÄÄ íîìåð_ðåñóðñà À> ÄÄÅÄÄÄÄÄÄ íîìåð_òîìà À> ÄÄÄÄÄ ñìåùåíèå_â_ôàéëå E (Extract) - extraction of a resource; A (Add) - addition of a resource; Q (Quit) - finishs work of the program. On a question Directory Entry: it is necessary to enter íîìåð_ðåñóðñà, which you want to take. The following question Translate (0/1/2): to answer follows: 0 or 1 - for a Logic-resource: 0 - Means compilation, compatible to the interpreter of the firm Sierra On Line, Inc. 1 - compilation for the interpreter, delivered in a package. 2 - For View-, Sound- and Picture-resources; For Logic-resources there will be the additional question: LOOK MESSAGES (< number >): < The number > is number of the messages in a Logic-resource. Entering number, it is possible to see(overlook) the texts of the messages. By entering 0, it is possible to finish viewing. Final question Save to: it is necessary to enter a name of a file, in which resource will be written down taken from the file VOL.n. A (Add) - addition of a resource. The first question - name of a file, which will be added as a new resource. A file should contain correct ïðåôèêñ of a resource. Translate (0/1/2): - see E a team Volume number: - name of a file VOL.n Enter Directory Entry: - number of a new resource II.3.2 the PROGRAM DUU (Directory Update Utility) ======================================= ======== This program is simplified updating of the program VM. It(she) carries out unique(sole) function of addition of resources in volumes (Add) and accepts parameters from a command line. The program is intended for use in Batch-files (batch). Its(her) format: DUU < a symbol > [íîìåð_ðåñóðñà] [íîìåð_òîìà] [Translate] a file All parameters are certain and are divided(shared) by blanks. < Symbol > - first symbol of a name of a file of the indexes of accommodation of resources in volumes: V - ViewDir (for view-resources); S - SndDir (for sound-resources); P - PicDir (for picture-resources); L - LogDir (for logic-resources). íîìåð_ðåñóðñà - Number, on which the resource can be taken from a volume; íîìåð_òîìà - Number of a volume, in which resource will be placed; Translate - Has the same meanings(importance), as in VM: 0 or 1 - for a Logic-resource: 0 - means compilation, compatible to the interpreter of the firm Sierra On Line, Inc. 1 - compilation for the interpreter, delivered in a package; 2 - For View-, Sound- and Picture-resources; File - complete name of a file, which will be added as a new resource. II.4. PROGRAM OM (Object Manager) =================================== Is intended for service of Object-resources. Works in a mode of dialogue. Functions: E (Extract) - prints out contents of a file OBJECT. Translate (0/1/2) - means: 0 - Format Sierra On Line; 1 - Format of the interpreter of a package; 2 - Out-of-date format Sierra On Line, Inc (for example, for game Space Quest 1). C (Create) - creates a Object-resource (file with a name Object) Questions: ~ ~ ~ ~ ~ ~ ~ ~ Enter maximal number of animated object: --------------------------------------- - It is necessary to enter the maximum number of object (ìóëüòôèëüìà), with which interpreter will work. Usually no more than 15. Then required(demanded) number of subjects (their number is entered is not connected with entered before this number of objects). Enter another object: -------------------- - Name of a subject is entered, and, the blanks in a name are coded is familiar ïîä÷åðêèâàíèÿ. For example: Bag_of_Fast_Food Enter room: ---------- - Contents of a cell "room" for the given subject is entered: -1 means, that the subject belongs playing; -2 means termination(ending) input. Translate (0/1/2): ñì.âûøå. II.5. UTILITY of WORK WITH the DICTIONARY ================================ The programs WL and WM (Words Look and Words Make) are intended for work with the dictionary of system AGDS. The programs WL and WM process the dictionary of length up to 1400 words. II.5.1 the PROGRAM WL (Words Look) ================================ The program WL is started from a command line and has a format: WL [- a key [âûõîäíîé_ôàéë]] The key - specifies a way of sorting of a unpacked file of the dictionary: - A - sorting according the alphabet; - N - sorting according numbers; - M - sorting according the alphabet with an opportunity of the subsequent processing by the program WM; âûõîäíîé_ôàéë - File, in which unpacked dictionary will be written down. Entrance file always WORDS.TOK. If the target file is not specified, it is meant WORDS.LST. If not a key is specified, it is meant -A. II.5.2 the PROGRAM WM (Words Make) ================================ Is intended for creation of a file WORDS.TOK (dictionary of system). The program WM is started from a command line and has a format: WM âõîäíîé_ôàéë âõîäíîé_ôàéë - File, containing the unpacked dictionary. The blanks in word collocations should be replaced with a symbol ïîä÷åðêèâàíèÿ. (the Program WL gives out such file at the instruction(indication) of a key -M) It is necessary to create a file, containing in each line a pair: WORD a CODE, where WORD - sequence of the lower case letters and marks ïîä÷åðêèâàíèÿ, meaning blanks, beginning with the letter; CODE - decimal number - code of this word. In the last line of a file a pair should be written down: Word -1 < ÄÄÄ a code of the end of a file Example: a 0 an 0 and 0 anyword 1 look 2 view 2 inspect 2 rol 9999 cof -1 II.6. UTILITY of RESTORATION of the INITIAL TEXTS of the PROGRAMS ======================================= =============== THE PROGRAM SM (Source Manager) ============================= The program SM (Source Manager) is intended for restoration of the initial text LOGIC of a resource on his(its) compilated image. Call of the program: SM < âõ_ôàéë > [âûõ_ôàéë] If you will not specify a name of a target file, the conclusion of the restored text will come true on the device STDOUT (on the terminal). With the help of a team DOS'à " to redefine a conclusion " you can receive listing on the printer. The kind of listing depends on expansion of a file: . LST - complete listing (with the instruction(indication) decimal and øåñòíàäöàòèðè÷íûõ of displacement); .ASM - listing, suitable for the subsequent compilation; .MSG - listing, containing only the messages. As the program SM single-pass, it(she) does not put labels, referring back. The references to such labels are allocated in listing. That in the text of the program, restored by the utility SM correctly to put down of a label, it is necessary: - To create at the help SM a file with expansion .lst. - In this file at the left in square brackets opposite to a name of each team ïðîñòàâëåíî its(her) decimal displacement is rather began the programs. Taking into account, that the program SM generates names of labels from a symbol "L and decimal displacement of a team is rather began of the restored text, easily it is possible to restore íåïðîñòàâëåííûå of a label of all teams, to which there is the reference back. Example: ~ ~ ~ ~ ~ ~ ~ Two fragments of listing of the program, created by the utility SM are here resulted(brought), when the target file has expansion .lst. In the second fragment there is the reference back on a label L215, not ïðîñòàâëåííóþ by the utility SM. The site of a label can be found on decimal displacement, as is shown below. ...................................................... ÚÄ d4 [212]: SOUND 118, 52 ³ Label this d7 [215]: IF_ < ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ´ Team d8 [216]: NOT_ ³ Will be d9 [217]: ISSET 121 ³ L215 db [219]: ELSE_ L223 a HELL de [222]: RETURN ...................................................... ...................................................... 283 [643]: IF _ 284 [644]: EQUALN 221, 10 287 [647]: ELSE_ L656 28a [650]: SOUND 58, 52 28d [653]: JUMP L215; ******** this label not; ïðîñòàâëåíà! 290 [656]: L656 IF _ 291 [657]: EQUALN 221, 19 294 [660]: ELSE_ L666 ....................................................... The symbol of translation of a line, meeting in lines of the messages, is replaced with a symbol ^. THE APPLICATION ========== Ï.1. FILES AGDS =============== For successful work of the interpreter AGI.EXE (AGDS.EXE) in the working catalogue there are following, îòêðûâàåìûå by the interpreter at fulfilment èãðîâîé of the program, the files: AGIDATA.OVL - System data of the interpreter; IBM_OBJS.OVL - Overlay programs of management by animation; HGC_OBJS.OVL CGA_GRAF.OVL EGA_GRAF.OVL VG_GRAF.OVL - Overlay programs of management ãðàôèêîé. HGC_GRAF.OVL HGC_FONT.OVL For formation completed èãðîâîé of the program, the developer should create and to add to system files of resources: OBJECT - Through the utility OM; WORDS.TOK - through the utility WM; VOL.0, VOL.1,..., VOL.4 - volumes of data (contain resources in a packed kind) through the utility VM or DUU and indexes (LOGDIR, VIEWDIR, PICDIR, SNDDIR) to them (form automatically by utilities VM or DUU). Ï.1.0. PREPARATION of the PROGRAMS FOR EXECUTION(PERFORMANCE) by the INTERPRETER ======================================= ================== The program written for the interpreter should be by an appropriate amount prepared and is processed, before it(she) can be carried out by the interpreter. To receive the executed program you should have: - The macroassembly program MASM 5.0 (in a package AGDS does not enter); - the file of macrodefinitions of the assembler comdef.inc (enters structure of a package AGDS); - Ëèíêåð (link), included in MS DOS version 3.0 and is higher; - utility exe2bin, included in MS DOS version 3.0 and is higher. The initial text of any logic (the program for the interpreter) should be prepared as follows: - The logic should begin by the following group of the operators of the assembler: IF1 INCLUDE COMDEF.INC; Include command definition ENDIF VOL EQU 0; Define volume number (number of a volume, in; which logic) LOGIC SEGMENT BYTE will be included ASSUME CS: LOGIC BEGIN; Start up - macrodefinition from; comdef.inc - Text of the program in teams of the interpreter here places; MESSAGES 0; < - to specify quantity(amount) of the messages in logic - Here area of the messages; - Logic the following operator comes to an end: VERYEND EQU $ LOGIC ENDS END Similar pattern for registration of the program you can receive, for example in a file A.asm, as follows: - To create an empty file A by a team MS DOS: Copy con A then to press a blank and combination Ctrl + Z; - To start the utility of a package SM: Sm A A.asm. The prepared thus text of the program, placed at the file èìÿ_ëîãèêè.asm is processed then as follows: a) Assemblage of the initial text of logic by the macroassembly program: MASM èìÿ_ëîãèêè; And reception of a file èìÿ_ëîãèêè.obj b) Transformation of a file èìÿ_ëîãèêè.obj to a file èìÿ_ëîãèêè.exe through system ëèíêåðà: LINK èìÿ_ëîãèêè; c) Transformation of a file èìÿ_ëîãèêè.exe to a file èìÿ_ëîãèêè.bin by the system utility exe2bin: EXE2BIN èìÿ_ëîãèêè d) Addition (replacement existing) logic-resource with the help of the utility of a package DUU: Duu l 0 0 1 èìÿ_ëîãèêè.bin  À> ÅÄÅÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ logic À> ÅÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ number (logic) 0 À> ÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ in that number 0 À> ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ a mode of compilation ëîãèê for the interpreter AGDS = 1, for AGI = 0 is added; The steps a), b), c) can be incorporated in appropriate batch (.bat) file, which by use of an environment NC (Norton Commander), can be caused, for example, automatically on expansion (.asm). For this purpose it is necessary to include in a file nc.ext a command line for processing files with expansion .asm (provided that the batch file is in the root catalogue): asm: C:\abc.bat! In this case for fulfilment above(over) a file with expansion .asm of steps a), b), c) it is necessary to establish on him(it) illumination NC and to press a key Enter. The file nc.ext can be be created and to be edited with the help of any text editor or to use the built - in editor NC (to press F9 and to choose a mode eXtension file edit in a submenu Commands). In general, all resources (logic, picture, view, sound), before they can be used by the interpreter, should be packed into volumes (files vol.n, where n - number of a volume) through the utilities of a package VM or DUU, which simultaneously create and files of the indexes (logdir, picdir, viewdir and snddir), on which interpreter during execution(performance) of the program takes necessary (specified in ëîãèêàõ) resources from volumes. Picture-, view-, sound-resources and the internal table îòëàä÷èêà (log.dbg) can be included in the appropriate volumes through the utility duu as follows: Duu p 0 1 2 PICTURE.0 duu v 5 2 2 VIEW.5 duu s 10 3 2 SOUND.10 duu l 100 0 1 LOG.DBG In ÄÂÄ In In ÄÄÄÂÄÄÄÄÄ À> ÄÅÄÄÅÄÅÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄ the first symbol of a name of a resource; À> ÄÅÄÅÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄ number of a resource, on which it(he) ³ ³ ³ Will be loaded by the interpreter; À> ÅÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄ number of a volume; À> ÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄ a mode of compilation; À> ÄÄÄÄÄÄÄÄÄÄ a name of a file, containing a resource; For picture-, view-, sound-resources a mode of compilation always 2. After termination(ending) assembly of volumes it is possible to start the interpreter. Item 1.1 PARAMETERS of a COMMAND LINE of the INTERPRETER AGDS ======================================= ============== The program ADGS (AGI) can accept at a command line two parameters: First - type of the computer: -p for PC, PCjr, PC/XT, PC/AT; -t for TANDY; Second - type of the monitor: -c CGA; -r RGB; -e EGA; -v VGA; -h Hercules. The task of these parameters is not certain, as the interpreter comprises means for automatic definition(determination) of a configuration of the computer. All actions of the interpreter are programmed by the developer. A unique(sole) key, on which constant reaction is available, is a key Scroll Lock, which serves for âêëþ÷åíèÿ/âûêëþ÷åíèÿ built - in îòëàä÷èêà-äèçàññåìáëåðà. Ï.1.2 FILES of the INDEXES of RESOURCES =============================== All resources of system, except subjects (Object-resource) and dictionary (Word-resource), are located in files VOL.n one for other. The indexes, allowing to define(determine) number of the file VOL.n, containing resource, and address of his(its) beginning in a file VOL.n, are in files of the indexes: LOGDIR for Logic-resources, PICDIR for Picture-resources, SNDDIR for Sound-resources, VIEWDIR for View-resources. The file of the indexes consists of three-byte fields (indexes), located in succession so, that the index number n specifies an arrangement níîãî of a resource. FORMAT of the INDEX --------------- 0 1 2 3 ÚÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄ ÄÄÄÄÄ · ³ Volume ³ ³ ³ º ÔÍÍÍÍÍÍØÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍ ÍÍÍÍÍ ¼ à < ÄÄÄÄÄÄÄÄÄÄÄÄÄ Offset ÄÄÄÄÄÄÄÄÄÄÄÄÄ > ´ 0 1 2 3 ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄ ÄÄÄÄÄ · ³ FF ³ FF ³ FF º < ÄÄÄÎáîçíà÷àåò empty ÔÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍ ÍÍÍÍÍ ¼ Index, i.e. the appropriate resource does not exist 4-th bit fields Volume are defined(determined) by(with) number of a file VOL.n. 20-òè áèòîâîe a field Offset îïðåäåëÿå displacement in bytes is rather began of a file VOL.n prior to the beginning ïðåôèêñà of a resource. Ï.2. FORMAT of a FILE VOLUME ========================= Each resource in a file VOL.n has 5-byte ïðåôèêñ, employee for a designation of a beginning of a resource and his(its) length. FORMAT ÏÐÅÔÈÊÑÀ -------------- 0 1 2 3 4 ÚÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄ · ³ 1 2 ³ 3 4 ³ ³ ³ º ÔÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÏ ÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍ ¼ Volume Length Ñèãíàòóðà 1234 serves an attribute of a beginning of a resource. The field Volume - should coincide with number of a file VOL.n, in which there is the given resource. The field Length - contains length following for ïðåôèêñîì of a resource in bytes. The field Length is written down in a format of a word, i.e. younger byte precedes senior. Ï.2.1 a FORMAT of a PICTURE-resource ============================ The Picture-resource represents a sequence graphic ïðèìèòèâîâ (teams), the execution(performance) of which allows íàðèñîâàòü a background and to attribute to his(its) points necessary priorities. Ïðèìèòèâ represents an one-byte code of a graphic team, for which one-byte operands can follow. The beginning of the following team automatically causes the termination(ending) previous. 1. To establish current colour ---------------------- Code F0. An operand: number of colour. Originally all points of a background have white colour and priority 4. Example: F00C - to establish current colour - bright - red. All graphic ïðèìèòèâû, following for this team, will use for display established colour. 2. To cancel current colour -------------------- Code F1. 3. To establish a current priority --------------------------- Code F2. An operand: a priority. Example: F20D - to establish a current priority 13. 4. To cancel a current priority ------------------------- Code F3. 5. To display a broken line ----------------------- Three graphic ïðèìèòèâà serve for display of broken lines. Code F4. Operands: x, y, y1, x2, y3, x4,... Draws a line by current colour and priority, consisting from pieces of vertical and horizontal lines: The first line vertical. Example: F4'28'32'64'78'32'29 Draws a closed rectangular in centre of the screen (40,50) (120,50) ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ¿ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ (40,100) (120,100) Code F5. Operands: x, y, x1, y2, x3, y4,.... The team is similar F4, but first line horizontal. An example: " F5'28'32'78'64'28'33 the Same rectangular. Code F6. Operands: x, y, x1, y1, x2, y2, x3, y3,..... The team draws a broken line, consisting of pieces direct in the direct general provisions Example: " F6'50'32'28'64'78'64'50'32 Triangle (80,50) /\ / \ / \ (40,100) ------ (120,100) Code F7. Operands: x, y, 1, 2, 3,.... This team is a version of a team ïðî÷åð÷èâàíèÿ of a general(common) broken line, consisting of very short pieces. Designates two sizes packed into one byte dx and dy: ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ · ³ Sx x x x ³ Sy y y y º ÔÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ¼ x X x - size from 0 up to 6 - meaning(importance) dx, if Sx = 1; oò 0 up to 7 - if Sx = 0; y y y - size from 0 up to 7 - meaning(importance) dy; Sx, Sy - if this bit is equal 0, appropriate undertakes with plus is familiar, differently(otherwise) with a minus is familiar. Example: " F7'4D'4D'60'06'E0'0D (77,77) (83,77) ÚÄÄÄÄÄÄÄÄÄÄÄÄ ¿ ³ ³ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÙ (77,83) (83,83) 6. Íàðèñîâàòü a point. ----------------- Code F8. Operands x1, y1, x2, y2, x3, y3,..... 7. Íàðèñîâàòü a point. ----------------- Code F9. An operand: p. The operand has the following format: ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ · ³ R c ³ S s s º ÔÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ¼ S s s - number from 0 up to 7, determining the size of a represented point; ñ - If "point" has the size more than 2, and this bit is equal 0, "point" is represented as a circle. If ñ=1, as a square; r - If this bit is equal 1, "point" is drawn "translucent" with the attitude(relation) of number of painted over elements to unpainted 1/3. The other bits should be equalled 0. Code FA. Operands: if in the previous team F9 bit r=0, x1, y1, x2, y2, x3, y3,..... R=1 r1, x1, y1, r2, x2, y2, r3, x3, y3,..... x (I), y (i) - coordinate of centre of a point; R (i) - the any number, from meaning(importance) of which depends an arrangement of painted over elements inside a "translucent" point. 8. End of work. ------------- Code FF. Item 2.1 a FORMAT of a VIEW-resource ========================= The code of the staff in a resource is built as follows. In the first three bytes of a code are specified width, height and îïèñàòåëü of the staff. A code of the image of the staff further follows. ÚÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄ · The first three bytes: ³ ³ ³ º ÔÍÍÑÍÍÍÏÍÍÍÑÍÍÏÍÍÍÑÍÍ ¼ ³ ³ ³ V v ³ Width height v îïèñàòåëü ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ · ³ S 0 l l b b b b º ÔÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ¼ s - Flag of symmetry. 0 - the staff is symmetric on a vertical; 1 - is not symmetric (see below); L l - number of a cycle (0-3) for the asymmetrical staff (see is lower); B b b b - chosen colour of a background. The code of the image is built of consecutive codes of lines of the staff. Each code of a line of the staff comes to an end in zero byte. The code of a line of the staff consists of byte fields of the following kind: ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ · ³ C c c c ³ N n n n º ÔÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍ ¼ Colour the counter (0-15) (1-15) C÷åò÷èê designates number of consecutive elements of a line of the staff, have the specified colour. Example. Counting, that colour of a background - 0 (black), and colour of the image bright - steal ~ ~ ~ ~ ~ ~ ñíûé (12), for " of the right arrow(pointer) " shall receive a code: 0A 07 80 06 C1 00 06 C2 00 C1 05 C3 00 øèð âûñ not ñèìì., 1-ÿ a line 2-ÿ a line 3-ÿ a line ôîí=0 CA 00 C1 05 C3 00 06 C2 00 06 C1 00 4-ÿ a line 5-ÿ a line 6-ÿ a line 7-ÿ a line We shall notice, that if, since some place and up to the end of a line, all points have colour of a background, they can be not coded. The driven image (ìóëüòôèëüì) consists of the several staff, ñìåíÿþùèõ each other. Such sequence following one for other staff refers to as by a CYCLE (counting, that the zero staff follows the latter). Cel 0 cel 1 cel n-1 ÄÄÄÄÄ > ÄÄÄÄÄ >..... ÄÄÄÄÄ > Cycle (loop) from n of the staff. Code of a cycle -------- ÚÄÂÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÂÄ ÄÂÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄ ¿ ÚÄÄÄÄÄÄÄÄ · ³ ³ ³ ³ ³ ³ ³ ³ º ³ N ³ Offset (0) ³ Offset (1) ³.... ³ Offset (n-1) ³ Cel (0) ³... ³ Cel (n-1) º ³ ³ ³ ³ ³ ³ ³ ³ º ÔÍÏÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÏÍ ÍÏÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍ ¾ ÔÍÍÍÍÍÍÍÍ ¼ n - Number of the staff in a cycle; Offset (1) - displacement in bytes of a beginning of a code of the appropriate staff is rather began of a code of a cycle; Cel (0) - code of the staff 0; Cel (n-1) - code of the staff n-1. At last, the set of cycles will form a complete View-resource. Code of a View-resource --------------- ÚÄÄÂÄÄÂÄÂÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄ ¿ ÚÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄ ¿ ÚÄÄÄÄÄÄÄÄÄ · ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ º ³01³01³ N ³ Dcscr ³ Offset (0) ³ Offset (1) ³.. ³ Offset (N-1) ³ Loop (0) ³.. ³ Loop (N-1) º ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ º ÔÍÍÏÍÍÏÍÏÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍ ¾ ÔÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍ ¾ ÔÍÍÍÍÍÍÍÍÍ ¼ ÚÄÄÄÄÄÂÄÄ · ³ ³ º ³... ³00º ÔÍÍÑÍÍÏÍÍ ¼ ³ V The description - line of symbols, terminating in zero byte. The description can be away. COMPACT REPRESENTATION of the INFORMATION INSIDE a View-resource --------------------------------------- ------------------- 1. If the cycle contains two or more identical staff, displacement in a code of a cycle can specify the same code of the staff. 2. If two cycles from first four (i.e. 0,1,2,3) are çåðêàëüíûìè displays each other (for example, " the person goes to the right " and " the person goes to the left "), displacement of these cycles in a code View can specify the same code of a cycle. In this case in all staff of such cycle are brought meaning(importance) of a flag of symmetry and number of that cycle, which is really represented. In all cycles with numbers 4,5,6..., the flag of symmetry should be equalled 0 in any case. Çåðêàëüíîå the display of each staff is made directly inside a resource, and since length of a code can thus increase, at the end of codes of the staff, being subject "ïåðåâîðà÷èâàíèþ", it is necessary to reserve enough places (to write down necessary quantity(amount) of zero bytes). Ï.2.3 a FORMAT of a LOGIC-resource ========================== ³ ³ à < ÄÄÄÄÄÄÄÄÄÄÄÄÄÄ End ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ > ´ ÚÄÄÄÄÄÄÂ- Ä Ä Ä Ä ÂÄÄÄÅÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÂ- ÄÂÄÄÄÄÄÄÄÄÄÄ- Ä Ä ÄÄÄ · ³ ³ ³ ³ ³ ³ ³ | º ³ Offset ³ Commands ³ K ³ End ³ Offset 1 ³... ³ Offset k | messages º ³ ³ ³ ³ ³ ³ ³ | º ÔÍÍÍÍÍÍØÍ Ä Ä Ä Ä ØÍÍÍÏÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÏÍ ÍÏÍÍÍÍÍÍÍÍÍÍÍ Ä Ä ÄÍÍ ¼ ³ ³ ³ Offset ³ à < ÄÄÄÄÄÄÄÄ > ´ The field Offset contains length of the field following to it of teams of the interpreter. Byte k, containing number of the messages in a field messages further follows. Cìåùåíèå End serves for the instruction(indication) on the end of area messages. Offset 1,..., Offset k are displacement of the beginnings of the appropriate messages. The field messages contains the texts of the messages, representing lines terminating in zero byte as: M1 db " the First message ", 0 Ï.2.4 a FORMAT of a OBJECT-resource =========================== The Object-resource is stored(kept) in a separate file OBJECT. This resource serves for representation of subjects. by a SUBJECT structure, consisting of an one-byte cell, named room (room), and textual line, serving by the name of a subject, refers to as. If the meaning(importance) of a cell room for the given subject is equal 255, it is considered, that the subject belongs playing. It is otherwise considered, that the subject " is in a room " with number room. Besides in a Object-resource there is byte, determining the maximum number of controlled of object (see the description of a Logic-resource). STRUCTURE of a Object-resource. ------------------------- ÚÄÄÄÄ > the maximum number of controlled object 0 1 2 ³ 3 ÚÄÄÄÄÄÄÂÄÅÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄ ¿ ÚÄÄÄÄÄÄÄÂÄÄÄÄÄÂÄ- ÄÂÄÄÂÄ ³ ³ ³ ³ ³ ³ ³ ³.. ³ ³ ³ ³ ³ ³ Offset ³ * ³ Offset1³ room1³ Offset2³ room2³ ³ Offset3³ room3³ Ñòðîêà1³00³.. ³ ³ ³ ³ ³ ³ ³.. ³ ³ ³ ³ ³ ÔÍÍÍÍÍÍÏÍÍÍØÍÍÍÍÍÍÍÏÍÍÍÍÍÏÍÍÍÍÍÍÍÏÍÍÍÍÍ ¾ ÔÍÍÍÍÍÍÍÏÍÍÍÍÍÏÍÍ ÍÏÍÍÏÍ ³ Ïîñëåä.ñòðîê ³ à < ÄÄÄÄ all displacement of rather this point Offset - Displacement of the first line in a sequence of lines; Offset (i) - displacement of a line, serving by the name of i-that subject; room (i) - the cell, containing number rooms, where is i-ûé a subject; Lines - any sequences of symbols, coming to an end in zero byte. For concealment from playing of names and site of subjects, the Object-resource çàøèôðîâûâàåòñÿ and is stored(kept) in a file OBJECT in íå÷èòàåìîì a kind. Ï.3. CODES of ERRORS AGDS (AGI) ========================== In case of occurrence of an error in Var (17) code of an error, in Var (18) additional information is brought, and occurs ïåðåçàïóñê of logic 0 from a beginning. ÚÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ · ³ ³ ³ ³ º ³ Var (17) ³ Source of an error ³ Var (18) ³ Description º ³ ³ ³ ³ º ÃÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ¶ ³ ³ ³ ³ º ³ 1 ³ Discard_view ³ Number View ³ View - the resource was not º ³ ³ ³ ³ Number of object ³ Wrong number º ³ ³ ³ ³ Object º ³ ³ ³ ³ º ³ 3 ³ Set_view ³ Number View ³ View - a resource loaded º ³ ³ ³ ³ º ³ 2 ³ Set_view ³ Number of object ³ Wrong number º ³ ³ ³ ³ Object º ³ ³ ³ ³ º ³ 5 ³ Set_loop ³ Number of object ³ Incorrect number of a cycle º ³ ³ ³ ³ º ³ 6 ³ Set_loop ³ Number of object ³ With is not loaded º ³ ³ ³ ³ º ³ 4 ³ Set_loop ³ Object is not connected º ³ ³ ³ ³ View - resource º ³ ³ ³ ³ º ³ 7 ³ Set_cel ³ Number of object ³ Wrong number º ³ ³ ³ ³ Object º ³ ³ ³ ³ º ³ 8 ³ Set_cel ³ Number of object ³ Incorrect number of the staff º ³ ³ ³ ³ º ³ 9 ³ Sound ³ Number Sound ³ Sound - resource not º ³ ³ ³ ³ Is loaded º ³ ³ ³ ³ º ³ 10 ³ Set_cel ³ Number of object ³ With object is not connected º ³ ³ ³ ³ View - resource º ³ ³ ³ ³ º ³ 11 ³?³ Maximum ³ Overflow script- º ³ ³ ³ Size script- ³ Buffer º ³ ³ ³ Buffer ³ º ³ ³ ³ ³ º ³ 12 ³ Ere ³ Number of object ³ Wrong number º ³ ³ ³ ³ Object º ³ ³ ³ ³ º ³ 13 ³ Animate_obj ³ Number of object ³ Wrong number º ³ ³ ³ ³ Object º ³ ³ ³ ³ º ³ 14 ³ Print ³ Number ñîîáùåíè ³ The message is away º ³ ³ ³ ³ º ³ 15 ³ Team - test ³ Next byte ³ Inside conditional èíñò- º ³ ³ ³ From Logic- ³ Ðóêöèè has met not º ³ ³ ³ Resource ³ Correct(faithful) byte º ³ ³ ³ ³ º ³ 16 ³ Team ³ Next byte ³ Inside Logic - resource º ³ ³ ³ From Logic- ³ Has met inadmissible º ³ ³ ³ Resource ³ Code º ³ ³ ³ ³ º ³ 17 ³? ³ Object_number ³ Internal error èíòåð- º ³ ³ ³ ³ Ïðåòàòîðà º ³ ³ ³ ³ º ³ 18 ³ Draw_pic ³ Number Picture ³ Picture - resource not for º ³ ³ ³ ³ Ãðóæåí. º ³ ³ ³ ³ º ³ 19 ³ Draw ³ Number of object ³ Wrong number îáú- º ³ ³ ³ ³ Åêòà º ³ ³ ³ ³ º ³ 20 ³ Draw ³ Number of object ³ Object is not compared º ³ ³ ³ ³ View - resource.º ³ ³ ³ ³ º ³ 21 ³ Discard_pic ³ Number Picture ³ Picture - a resource not for º ³ ³ ³ ³ Ãðóæåí º ³ ³ ³ ³ º ³ 22 ³? ³ Number Logic ³ Internal error èíòåð- º ³ ³ ³ ³ Ïðåòàòîðà º ³ ³ ³ ³ º ³ 23 ³ Get or put ³ Number of a subject ³ Wrong number ïðåä- º ³ ³ ³ ³ Ìåòà º ³ ³ ³ ³ º ÔÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ¼