Spectrum Progress #02
19 января 1997

Entries programmer - Basic programming API for Domain OS.

<b>Entries programmer</b> - Basic programming API for Domain OS.
  (C) Maxim Gannutin, 1997.



   Fundamentals of programming under OS API Domain


  We introduce concepts:


  Object - is logically isolated part of the code
having the opportunity to receive and send messages presented 
on the screen An image and declared the system. In fact, we are 
talking about objects of the user interface. 


  Message - a logical designation process
zaklyuchaeschegosya in the call object (call, jp) with the 
statement in the register A number of commands that an object 
must fulfill, and the remaining parameter registers. 


  Object.


  The site consists of three sections:
Manager - the code that checks the contents of the registration
            A pa and causing corresponding

            method.
Techniques - codes, correct at time of reaction to one or

            otherwise the message.
Data - data to be operated on an object.


  Example:
 EXMPLobject

   cp 1; Manager

   jr z, EXMPLopen

   cp 1922

   jr z, EXMPLlight

   cp 1923

   jr z, EXMPLshadow

   cp 1924

   jr z, EXMPLselect

   ld a, 57; message is not accepted

   ret
 EXMPLopen; method for communication open

   ...

   xor a

   ret
 EXMPLlight; method for communicating light

   ...

   xor a

   ret

   ...
 EXMPLdstruct; data

   20 defs


  Message.

 20 init Initialization
 21 close close
 22 light cursor moved to the object
 23 shadow cursor left object
 24 select the user clicks an object
 25 parsel object came to the premise (drag'drop):

            d = type of parcel

            b, c data (sm.drag 'drop)

            If the premise is accepted, then the object

            should return in case A = 33.
 26 char message from the keyboard:

             d, e, b, c (sm.prots.FKEYBOARD)


  To declare an object is necessary:

1. Derive the on-screen image of the object.
2. Declare an object system:

   ld e, x coordinate

   ld d, y coordinate

   ld c, len

   ld b, hgt

   ld h, class

   ld l, object

   ld a, 90; procedure CONSTRUCTOR

   call 23403


  Clear object:

1. Clear the screen
2. Remove object

    ld de, coordinates

    ld bc, sizes

    ld a, 91: procedure DESTRUCTOR

    call 23403


  Procedures and functions.

  Disk subsystem.


  Dates:

           <- Pointer to ...
root: root
name: ^ field (11 bytes) 'filenameext'

          You can use the "?"
pattern: the same name
handle: the file header (32 bytes)
attrib: 11th byte header
FP: file pointer

          indicates the offset from the beginning of the file,

          from which is read or

          written information
FM: filehandle

          +0 Filenameext (11)

         +11 Attrib

         12 record-size (2)

         +16 FP (3)

         22 times

         24 Date

         28 file length (3)
BSIZE: files larger than 65 kilobytes

          DSS is logically divided into blocks

          to 65535 bytes, which are called

          BSIZE.

 Call: ld a, nomer_funktsii

             ld hl, options

             ld de, options

             ld bc, the parameters

             call 23403

             cp 0

             jr nz, error

 Create a CREAT file


  in: hl, name

       e, attrib
 out: a = 24,26

 2 OPEN Open a file

 Creates a filehandle (FM)
 procedures for 3,4,5,6,7,8.

  in: hl, name

      bc, the record size (Func. GET and PUT)
 out: e, number of FM

      a = 29

 3 CLOSE Close the file

 FM is released. In the handle entered a new
 meaning the file size.

  in: e, FM
 out: a = 29

 4 READ Sequential read from a file.

 FP increases the value of bc.

  in: e, FM

      hl, where

      bc, as
 out: a = 29

 5 GET random reads


  in: e, FM

      hl.kuda

      d, a record number
 out: a = 29

 6 WRITE A consistent record in the file


  in: e, FM

      hl, where

      bc, as
 out: a = 26,27,29


 7 PUT arbitrary file write


  in: e, FM

      hl, where

      d, a record number
 out: a = 26,27,29

 8 MOVEFP Change FP


  in: e, FM

      hl, offset

      d = 0 from the beginning of the file

      d = 1 from tenkuschey position

      d = 2 by the end of file

      d = 3, go to the next BSIZE

      d = 4, return to the previous BSIZE
 out; a = 23,29,36

 9 FINDFIST Finds the first file name

             matching a pattern


  in: hl, template
 out: hl, ^ handle

       a = 21

10 FINDNEXT Find the next matching

             File

 out: hl, ^ handle

      a = 21

11 LOAD File Download


  in: hl, name

      de, where (de = 0, the parameter is taken from

                 file handle)

      bc, as (bc = 0, the parameter is taken from

                 file handle)
 out: a = 21,23

SAVE 12 Recording File


   in: hl, name

       de, where

       bc, as

  out: a = 24,25,26

13 DELETE Delete a file


  in: hl, name
 out: a = 21,27

14 RENAME Rename a file


  in: hl, oldname

      de, newname
 out: a = 21,27

15 MOVE Move files from the current

              directory to another

  in: hl, name

      bc, the first cluster of the new directory

         (Bc = 0 root)
 out: a = 21

16 ATTRIB Attribute File


  in: d = 0 Reading

      d = 1 record

      hl, name

      e, attrib
 out: a = 21

      e = attrib

17 TIME Time File


  in: hl, name

      d = 0 / 1

      b; c; e = hour, minute, second
 out: a = 21

      b; c; e

18 DATE File date


  in: hl, name

      d = 0 / 1

      b; c; e = year, month, day
 out: a = 21

      b; c; e

19 MKDIR Create a subdirectory


  in: hl, name
 out: a = 24,26

20 RMDIR Delete subdirectory


  in: hl, name
 out: a = 21,30

21 CHDIR Change directory


  in: hl, ^ string
 out: a = 22

     bc, the first cluster of the new current

        Catalog

 string: defm "subdir1subdir2"

               ^ "" Symbol, to start from root

                otherwise, the current

         defb 0

22 CHNDISK Change Disk


  in: e = 0 .. 4
 out: a = 1

1923 VERSION DSS DSS Version

 out: de = version

24 CALL_BIOS call BIOS functions


  in, out, see the manual for bios

25 DSSVARS System Variables DSS


  in: e, the number of variable

      d = 1 / 2

        c = content
 out: e, content,

26 VEKTORS Vectors DSS


  in: e, the number of vector

      d = 0 / 1

        hl = new value
 out: hl = value

27 VERIFY Validation

                   record file

  in: see LOAD
 out: a = 32

28 CACHE cache disk


  in: d = 1 initializing the cache

      d = 2 to disable cache

      d = 3, information about the cache (table)

        hl, where

   table: 8 entries from defb sec, trk

                          defw ^ buffer

29 RAMDISK Solid State Disk


  in: d = a table loading banks in DSS

       hl, where

       e, how many banks

      d = 2, unloading tables

       hl, where

      d = 3 a RAMD

30 FREESPACE Free disk space


  out: bc, number of kilobytes (1024 bytes)

33 MASKCREAT New Template


  in: hl, ^ string

      de, ^ buffer

  string: defm "filename.ext"

            defb "."

            You can use the "?" and "*"


  Error Messages

 1 no willingness
 2 record on a secure floppy disk
 3 Press 'BREAK'
 4 read / write error
 5.6 Seek errors
 8 mismatch and floppy drive
 9 unformatted disk
21 file not found
22 the wrong way
23 impossible option
24 files with that name already exists
25 overflow root
26 out of disk space
27 files 'read only'
28 no free FM
29 unreal number FM
30 in a subdirectory files
31 non-existent function
1932 error when verify
33 is not the disk
34 unplanned event
35 in TR-DOS operation is not possible
36 BSIZE already at zero


   Vectors DSS

 A handler function
 2 BIOS
 3 Appeal to clipboard



            Functions and procedures of API


  Abbreviations and terms:


  len length of

  hgt height

  char symbol

  class, see "Programming"

  object there is the same

  method method API, in the parentheses are processed

         Posts


  Thus, as in most procedures, there is only
input parameters, the word "in" no Specifies the.


  When there are registers d, e, b, c without
descriptions, this means: e, the x coordinate

                      d, y coordinate of the

                      c, len

                      b, hgt

40 PUTCHAR Output symbol

   Domain OS understands all the special characters

   Spectrum OS.


   b = char

   ix, ^ desc


  desc (standard text descriptor):

       defb x, y, len, hgt; 8 * 8

       defb 0

       defb color

       defb flags

       defb x, y; cursor

       defb "_"; char pointer

       defb x; in the size of the symbol

       defb 0


       Flags

       0 output cursor

       1 to change the attributes for each character

       3 ban scrolling

       4 scissors

       5 O ban

       6, with no touch scroll attributes

       7 before finding a character to clear the position of

47 PUTIMAGE Print image

   d, e, b, c

   hl, ^ bitmap


    bitmap: defb len, hgt

            defs len * hgt * 8 pixel line

            defs len * hgt; attributes

48 GETIMAGE Get a screen image

   d, e, b, c

   hl = buffer

1951 FONT

   d = 1 transfer in the system font

   e, width simvlov

   hl, where

52 CPIFUNC code table

   in: d = 1 Download CPI

        hl, where

       d = 2, information on the current CPI

  out: d = 2 b = type

                  1 alt_a

                  2 alt_b (main)

                  3 tlw2

53 TOERRWINDO W output messages in the error window OS

     hl, ^ string

56 VIRTWINDOW Managing virtual window (VW)

   in: h = a VW full screen

       h = 2 in all the application window

       h = 3 a VW with d, e, b, c in tektsuschem VW

       h = 4 to restore the previous VW (only

           when h = 3)

  out: if h = 3

           e, d, c, b physical coordinates

           a = 23 (for d, e)

59 WALLPAPER Clear the screen of the application window

   d, e, b, c

   h = 1 in the application

   h = 2 in the field of icons


     Next come the graphics routines in VW

60 VWPUTLINE Conclusion Thong

   hl = ^ string

   ix = ^ desc


   string: defm "text"

           defb 0

61 VWPUTCHAR character output

   b = char

   ix = ^ desc

62 VWSCROLL Scrolling

63 VWCLEAR Cleaning windows

64 VWDRAW Line

65 VWBOX

66 VWIMAGE

67 VWVALFUNCT ION

68 VWATTR

69 VWGETIMAGE Get image

   d, e, b, c

   hl = ^ buffer

70 SELCUR Selecting an image cursor

   b = number

      An arrow

      2 hourglass

      3 cross

      4 reserved

71 PUTCUR output cursor

   h = x_coord

   l = y_coord

73 DELTCUR Erase cursor

74 Work with CURSOR cursor

   out: d, e (8 * 8)

        h, l (pix)

        c, flags directions

         bit

          0 right

          A left

          2 down

          3 up

          4 fire

76 IMGCURSOR Download image at the current cursor

   hl = ^ image


   image: defb pix_1, mask_1

           defb pix_2, mask_2

           ...

           defb pix_16, mask_16

77 HANDPORT Reading direction flag

   out: c, flags

       h, l

80 FKEYBOARD Reading Keyboard

   out: e, char

        d, flags modifiers

         Bit 0 1

          0 lat rus

          1 ovr ins

          2 capslock

         with the physical key code (caps)

         b, flags control keys

          bit

           0 caps shift

           A symbol shift

82 GETABLE Loading table layout

            Keyboard

  hl, ^ table

87 BEEP beep (to AY)

88 SERVICE Some features

  in: d = 2 Output Management VWDRAW

       e = 0 read current mode

       e = 1 or

       e = 2 xor

       e = 3 and

  out: e = mode

90 CONSTRUCTO R Declaring an object

   d, e, b, c

   hl = object

91 DESTRUCTOR Clear object

    d, e, b, c

1995 SESSION Transfer control system

96 SENDMESSAG E Send a message (drag'drop)

   in: hl, ^ cursor image

       d, the message number

       bc, peredovaemaya information

  out: a = 59

100 EXECUTE Launching an application

  in: d, e coordinates of the main window

         application to run

     hl, name

     ix, ^ prefix

     b = 1 download and open

     b = 2 download icon
 out: b, number of the application descriptor

 prefix: defs 64; any information

                  peredovaemaya application

101 TUNEEXE address configuration

    ix, ^ address table

    hl, the address where the tune


   Table: defb flags (# 01)

            defb number of addresses

            defw start address of code in which

                 configured address

                 (When compiling)

            defw addr1, addr2 ...

102 TERMINATE have completed the application

    in: b, application number

103 FARRUN Launching an application from the application

    Work FURRUN: application, call this

    function svopiruetsya holds EXECUTE,

    after which control returns to the original
    nomu application.


    in, out: similar to EXECUTE

110 READVAR System Variables

    in: b, number

        d = 1 read

        d = 2 record

         e, content,

    out: e, content,

112 SETVEKTORS vector of the system

    in: d, the number of vector

        e = 1 read

        e = 2 to write

         hl, the vector

    out: hl, vector


  Vector: 1 APIVEKTOR procedures api

           2 KEMPORT device uprav.kursorom

           3 KEYBOARD keyboard driver

           4 WALLPAPER wallpaper

           5 EXEC EXECUTE procedure

           6 CLOSE procedure TERMINATE

120 QUERYRESID ENT request to install residenta

   in: d = 1 PNT Resident

       d = 2 IM2 Resident

       e = 1 request for memory allocation

       e = 2 request for memory allocation

           at a particular address

           hl, e

       bc, length of residence

    out: hl, the desired address

         b, bank

         a = 53,54

121 SETRESIDEN T Set Resident

   in: ix, handle resident

       de, ^ the body of a resident

       b, where the bank

       hl, the address where

  out: b, the number of residents

       a = 55
 handle residents:

  defb 0

  defb type * 1-PNT 2-IM2

  defm "resiname" * name of the resident

  defw length of residence *

  defw count cycles (for IM2) *

  defw address access

  defb Bank

  defw entry point address

  defb flags


    * Fields that must be filled manually

122 DELRESIDEN T Remove Resident

   in: b, the number of residents

       d, type of residence

200 VSB_INIT strip of vertical scrolling

       d, e

       b, hgt

       h, class

201 VSB_MOVE method (24)

   in: d, e

       b, Number of points

       h, the total number of rows

       c, the current row

       l = 3 up

       l = 4 down

   out: c, a new current row

202 HSB_INIT strip horizontal scrolling

        d, e

        b, len

        h, class

203 HSB_MOVE method (24)

    in: d, e

        b, Number of points

        h, the total number of columns

        c, the current column

        l = 7 left

        l = 8 to the right

   out: c, a new column

204 LISTBOX view window

  d, e, c, b

  h, class

  l, flags

     0 button close

     1 frame header

     2 button home

     3 VSB

     HSB 4

     5 Button end

     6 cleaning windows

205 IBOX_INIT Windows Keystroke

  e, d, c

  h, class

  ix, ^ buffer

  l, flags

     0 button Rus / Lat

     2 Cleaning windows


  buffer:

   +0 Defs 12 standard window handle

   +12 Defs 4

   +16 Defs? input string

206 IBOX_WORK method (24)

   e, d

   ix, ^ buffer

208 AWIN_INIT Main Window

   e, d, c, b

   h, class

   l, flags

     0 max

     1 min

     2 Cleaning windows

209 HMNU_INIT Horizontal Menu

   d, e

   h, class

   l = 1

    ix, ^ desc


  desc:

   +0 Defs 12; ctandart.desk.okna

   +12 Defs 2

   +14 Defb n; number of points

   +15 Defb x_1, len_1, x_2, len_2 ,..., x_n, len_n

   + M defm "file edit ..."

       defb 0

210 HMNU_INSERT method (22,23)

   ix, ^ desk

   l, object

212 VMNU_INIT Vertical Menu

    ix, ^ desk

    h, class

    l = 1

    b, flags

      0 Window Cleaning


    desk:

      +0 Defs 12; stand.desk.okna

      +12 Defs 2

      +14 Defb n; number of points

      +15 Defb y1, y2 ,..., yn

      + M defm "load"

          defb 13

          defm "save"

          ...

          defb 0

213 VMNU_INSERT method (22,23)

    ix, ^ desk

    l, object

218 BUTN_INIT buttons

   ix, ^ desk

   h, class

   l = 1

   c = 1 radios

   c = 2 independent fixation

   b, flags

      0 Window Cleaning


   desk:

     +0 Defb flags buttons, bits

     +1 Defs x; desk vert.menyu 0 1 Button

                                    February 1 button

                                    ...

219 BUTN_PRESS method (24)

    in: ix, ^ desk

   out: b, flags buttons

220 BUTN_INSERT method (22,23)

    ix, ^ desk

    c = 1 or c = 2

    l, object

222 KEY_INIT Icons

    d, e

    hl, object

    c, number


  c = 1 close

     2 home

     3 up

     4 down

     5 lift

     7 left

     8 right

    10 end

    11 rus

    12 lat

    13 zero

    15 system

    16 min

    17 max

    18 radio_on button

    19 radio_off buttonop

    20 nonfixed_on button

    21 nonfixed_off button

    22 "O'K"

    23 "REFUSAL"

225 VWCOLORS System Colors

   in: c, color number

       d = 1 read

       d = 2 record

         e color

  out: e, color


  number of colors:

   3 LBOX

   4 IBOX

   5 AWIN

   6 MENU

   7 DBOX

228 WINMANIPUL ATIONS Management window

  in: e, d, c, b

      h = 1, displacement

      h = 2 the size of the horizontal

      h = 3 Vertical

      h = 5 h = 2 + h = 3
 out: d, e or c, b



              Class Library

           DOMEN FOUNDATION CLASSES


  const - it means that these tags programmer defines itself, 
and they contain data. 

  uses - for working class requires a specified
class.


  SYSMES application message


  Processing of all system messages to the application. Some of 
the messages it processes and returns control to the method 
defined by the programmer. 

  Here's the list:
 An open APP_OPEN
 2 start_a APP_ASTART
10 exit APP_EXIT
11 help APP_HELP
12 maximize APP_MAXIMIZE
14 reopen APP_REOPEN

  Even if the programmer does not define
tag must be present.

In cell SYSMNOMER is the message number

 To work SYSMES required:


  APPdstruct

    defb 0

    defb X_pos, Y_pos, len, hgt

    defb class of objects AWIN

    defb flagi1, flagi2

    defb 0


    flagi1 flagi2 (resizing)

     0 max 0

     1 min 1 horizontal

               2 Vertical

const APPstart EQU ^ start appbitmap

      APPlenght EQU length appbitmap

      APPacess EQU ^ entry point

   APPtitlename defm "Application Name"

                   defb 0

   APPiconimage defb 3,3

                   defs 81; application icon


  Call: ld iy, APPdstruct

          call SYSMES

          ret nz


  ERRW Window System Error Message

ERRWopen Open a window with an error message


  in: a, the error number

      d, e

      h, class

ERRWwork method (24,26) Message handling



  MENU Menu

MENUinit initialization

   insert into APP_ASTART

MENUopen draw a horizontal menu

   insert into APP_OPEN

MENUwork method (22,23,24,25,26)

const MENUdstruct

   ; Main menu

      +0 Defb x, y

      +2 Defb number of points (<6), class

      +4 Defb length of paragraphs

      +9 Defm "file edit ..."

         defb 0

    ; First sub-

     + N1 defb number of points, the width of the window

         defw (addresses methods called

               when selecting menu items.

               How many points as many addresses.

               Method is passed: a, message

                    l, the number of the selected item)

         defm "open"

         defb 13

         defm "run"

         ...

         defb 0

MENUbuffer defs 160


  SDBOX simple dialog box

SDBOXopen

  in: l, the window number

  Window displays in the middle of the application window


SDBOXwork method (24,26)


  SDBOXspecial

  in: hl, ^ window name

      b, c

      a, class

const SDBOXdstruct

      defb len, hgt, class

   ; The first window

      defm "name of the first window

      defb 0

      defw method when you click O'K

           transferred to the l number of window

   And the second okno1

 sdboxkeys defb flags keys

                 0 O'K

                 1 Disclaimer


  BUTN selection panel installations

uses SDBOX

BUTNopen
 in: l, the window number

     h, buttons, bits

BUTNwork method (22,23,24)


   Method is invoked, at O'K in d passed

   new bits keys.

const BUTNdstruct

     +0 Defb len, hgt, class
 ; First panel

  +3 Defb type of buttons, radio buttons 1-2-independent.

     defb (method at O'K)

     defm "the name of window 1"

     defb 0

     defm "paragraph 1"

     defb 13

     defm "paragraph 2"

     ...

     defb 0 Number of points <9
 ; Second panel

   ....

BUTNbuffer defs 160


  DLGF window input-line

uses SDBOX

DLGFopen
 in: l, the window number, as described in SDBOXdstruct

     de, ^ method when clicked

     Attention! In the SDBOXdstruct address can be

     indicate DLGFclick, then when you click on O'K

     method DLGFGclick validate

     input file name and will call on the de,

     otherwise ignore O'K

DLGFwork method (22,23,24)

const DLGFbuffer defs 32



          Application Programming


  Messages sent to the application:

 1 OPEN to open the application window
 2 START A starting protsendury

            in: hl, ^ prefix

                de, coordinates raskkrytiya window

                c, number of the application descriptor

           out: hl, ^ Manager application

                de, ^ bitmap application

                bc, the length of the application


                If the application does not want

              start (for example, if

              is an application-resident),

              then a = 100.

 3 START B

           out: d, e, b, c windows application

 4 CLOSE Close the application window

          in: e, d to display the icon

 5 LIGHT application becomes active

 6 SHADOW application became inactive

10 EXIT to finish execution of the application

11 HELP derive context podskzku

12 MINIMIZE minimize the application window to an icon

            in: e, d to display icons

13 MAXIMIZE Expand window to maximum

             Size

            out: b, c

14 REOPEN redraw window

15 MOVE to move a window

         out: d, e

SIZE 16 resize

         out: b, c



             Application structure


  Manager

  Classes + application objects

  Application Data


  Classes DFC (no point in the object to
define system messages 1-19, so
use class SYSMES)


  Manager

 ld iy, APPdstruct
 call SYSMES; sm.opisanie DFC

 ld a, h; a = class
 cp 1910
 jr z, CLASS1work
 cp 1911
 jr z, CLASS2work
 ...
 ld a, 57; message is not accepted
 ret


  Classes and Objects

CLASS1work
 ld a, l; a = object
 cp 1
 jr z, OBJ11work
 cp 2
 jr z, OBJ12work
 ...
 ld a, 37
 ret

OBJ11work
 ld a, (SYSMNOMER); a = message
 cp 1923
 jr z, OBJ11shadow
 cp 1924
 jr z, OBJ11select
 ...
 ret
OBJ11select
 ...
 xor a
 ret
 ...
 ...

CLASS2work
 ld a, l
 ...
 ld a, 57
 ret


  Data

APPdstruct
 defb 0,0,32,19
 64 defs

 Classes DFC

* F 1: SYSMES ()
* F 1: MENU ()
 ...


  Now add the top assembly of text
tag APPS, but at the end of APPE.

  Define class methods SYSMES:
APP_OPEN

   call MENUopen; Output the main menu

   ...

   xor a

   ret
APP_REOPEN

   call SYSM01; perform open

   ... , And then additional

               ; Action

   xor a

   ret
APP_HELP; other methods do not define
APP_ASTART
APP_EXIT

   ld a, 37

   ret


 Style of programming applications in OS DOMAIN

1 Objects and Classes


  Latinskme capital.

  For example: BUTN

2 Methods


  Lat.zaglav. the name of the object to which the method 
applies, then the name of the method. 

  For example: BUTNopen, BUTNwork

           call BUTNopen

3 The data of the object or class


  Object Name + dstruct

  For example: BUTNdstruct

            ld ix, BUTNdstruct

4 Tags transition in the code of the object


  name of the object + two digits mark

  For example: butn01, butn02

            jr butn01, djnz butn02

5 routines in the code of the object


  Name of the object + two digits mark

  For example: BUTN10, BUTN11

            call BUTN10

6 Locals


  name of the object + d + figure

  For example: butnd1, butnd2

            ld a, (butnd1), ld (butnd2), hl

 In addition, there are rules for registration
labels belonging to the classes of DFC.

7 MENU


  Method names, plug-in MENUdstruct
Menu + digit serial number of the item
horizontal menu + digit numbers corresponding vertical menu.






Other articles:

From the Editor - Cheat Sheet - information on the management of the magazine.

From the Editor - The authors worked on the second issue of Spectrum Progress.

Toolkit - An article about the new operating system OS DOMAIN.

Toolkit - The article on the instrumental system for Spectrum "THE GRAPHIC ADVENTURE CREATOR".

Toolkit - An article about how to work the system to develop games Adventyurnyh "THE GRAPHIC ADVENTURE CREATOR".

Toolkit - Manual program "XPLAYER 78".

Toolkit - Instructions for use software package "ZX-WINWORD", intended for the preparation of illustrated texts.

Game room - Novella to the new national game "RETURN TO HOME 4.

Game room - a brief description of the new national game "RETURN TO HOME 4.

Game room - Novella and the description of the game "DEMON'S REVENGE".

Entries programmer - the musical programming of the processor AY-8912/10.

Entries programmer - Basic programming API for Domain OS.

piece of iron - "SPRINTER-97: Specifications.

piece of iron - "SPRINTER-97: Video System.

piece of iron - "SPRINTER-97": graphic accelerator.

Contest - The contest for the best name for your new computer r. "PETERS".

News - Information about the game "RETURN TO HOME 5" (Deadly worlds invasion Torostoidov) game is a continuation of "RETURN TO HOME 4.

News - information about a new text editor "TEXTWRITER" demo.

News - impressions of the failure ENLIGHT'97.

Aquarius - Programmers ... in terms of approach to work.

Forum - Information about the computer network SPbZXNet in St. Petersburg.

Forum - questionnaires, Alexei Lebedev (CONDOR SOFT) among users of ZX Spectrum in 1997

Forum - Interview with the famous Yaroslavl programmer Romanov R. (NICODIM).

Forum - An interview with Nikolay Noskov and Ivan Makarchenko, creators of "PETERS".

Advertising - free advertising and ad ...


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Similar articles:
Programmers - exchange of experience: On the effects on the curb, and about something else.
Advertising - Advertisements and announcements ...

В этот день...   23 November