ZX Format #05
11 декабря 1996
  IS-DOS  

IS-DOS - the programmer: a short course in programming in the IS-DOS.

<b>IS-DOS</b> - the programmer: a short course in programming in the IS-DOS.
 Category "IS-DOS - programmers" No 5.

music by DNK
_________________________________________


             Leontiev, G.


              SHORT COURSE

    PROGRAMMING ENVIRONMENT IS-DOS.


  (Under the general editorship Eliseev VA)


              From the Editor.


    Dear readers ZX FORMAT!
This short, we are entering a new and, we think, an extremely 
important issue - namely, writing programs in operating system 
environment IS-DOS. In connection with the catastrophic lack of 
information about the internal structure of the system to So 
far the development of deterrence, as many of the programmers 
who want to write something in the IS-DOS faced with the need 
to first understand, and as property she operates. Now,

hope the situation will change. Offered to your attention 
articles by leading experts, one of the "fathers" IS-DOS Alexei 
Leontiev contains some initial information that is necessary 
for anyone who decided to try his forces in the programming for 
IS-DOS. Thus, give the word to Alex:


*****************************************


               Leontiev


               WHAT TO DO?

                   or

   How to Stop Worrying and Start

        Program in ISDOSE


1. Memory allocation in iS-DOS:


    Operating system iS-DOS was originally written with the 
expectation of its performance in the old standard ZX 48 KB 
memory and at least one drive. Therefore, in iS-DOS Classic 
lower 16 KB of memory your computer is almost not used (there 
is a ROM BASIC). Above, to address # 4000, is the screen.



    Since the connection to the floppy disk drive via TR-DOS, 
then saved some variables of Basic and trdosa.

Thus we are left with the memory of 23,900 (# 5D5C)
to 65535 (# FFFF).


    Printer buffer (# 5B00 .. .. # 5BFF) is used for batch file 
exebat.com, required to operate a bat-files. Area with 23,900 
(# 5D5C) on 23,999 (# 5DBF) is reserved for program

mon.com and menu.com, which as well as
exebat.com cause other com-files.


    The region above 24000 is usually used to load system or 
user-com-files. "Komandniki" is loaded at load (12th, 13th 
bytes file descriptor). At the same point of control is 
transferred. 95% of all com-files has load address 24000.



    Upper region of com-files is limited
cache block devices.


    Cache block device contains a read through some of the 
restarts blocks. It is required for almost all restarts the 
service level file (with # 20 at # 38 and # 3B to # 3F), many 
restarts the level of the command line, working with

files and directories, and some restarts the upper level: $ 
shsubr (# 8E), $ Shpanl (# 90).



    When you run the com-file restarts with $ run (# 48) or $ 
exebat (# 44) system itself monitors the inviolability cache.

If com-file does not fit the cache, an error is generated 130. 
Address cache and its size Contact your system using a system 
restart $ g_cnfg (# 10): 


       LD C, # 10; $ g_cnfg

       RST # 10

       EXX; in HL - address of the vector

                   ; System configuration

       LD BC, 5; offset 5

       ADD HL, BC

       LD E, (HL); address cache

       INC HL; put in DE

       LD D, (HL)

       INC HL; shift 7

       LD A, (HL); cache size in blocks


    Now is not difficult to verify
lacks a memory, and if not, recreate the cache (if it is needed 
for the program) with a size smaller with the restart $ creat 
(# 00). 


    If the cache is temporarily not needed, this memory can be 
used, but then need to recreate the cache restart

$ Creat (# 00).


    Higher cache is an area of ​​channels.
Address, size, and a pointer field channels accrue through the 
already familiar restart $ g_cnfg (# 10) with offsets 32, 34 
and 36, respectively. In channels is kept the most necessary 
system information such as channel drivers and devices, 
channels, panels, and residents, and therefore, starting from 
the address field channels and up to # FFFF is better not to 
touch anything! 


    Over the domain channels are mixed (in order of loading) 
and drivers residents. The lower will be the resident (driver) 
is loaded last. Address is the lower residence at the end of 
channels (see above). 


    Residents and drivers are available for
names c using restarts $ fndev (# 51) and
$ Run (# 48) or by number of channels or device drivers.


    So any driver or a resident you
can get, knowing the number of its channels:

; To put the A channel number


       LD C, # 16; $ stchn

       RST # 10

       RET C; out by mistake -

                   ; Not canal, etc.

       EXX; in HL - Address

                   ; Body channel

       INC HL

       INC HL

       INC HL

       INC HL

       LD E, (HL)

       INC HL

       LD D, (HL); in DE - Address

                   ; Body driver

       ... etc.

(Description $ stchn and channels, see below)


    Resident task can run
knowing the number of its channel, restart
$ Exeres (# 53).


    Even higher with 5 levels of the system. They sit down, ie, 
the lowest level of the "DOS" (work with devices that cache, 
the channels and interrupts) is located at the top. Next come 
the "DUD" (File Services), "COM" (Shell), "WIN"

(Restarts work with windows, printing lines
etc.) and at the very bottom "SHELL" (file shells, work with 
panels, menus). 


    Two upper-level ("window technology" and "work with the 
panels) may be temporarily taken off the program with key 
set.com / L, but uses it rarely. 


    To see what where how much can be
using the program Q: UTIL \ show.com. She
lets you see all the major addresses
system, load address levels reezidentov and drivers, address, 
and cache size and much more.



       Example Memory Allocation

             iS-DOS Classic


          0 ROM BASIC

      16384 screen

      24000 area com-files

      35903 cache

      43,443 channels

      44,143 residents and drivers

      50304 Level 4: shell

      54800 Level 3: win

      58472 Level 2: com

      60726 Level 1: dud

      63296 level 0: dos



    All additional memory ZX (128,
256, etc.) or used for virtual RAM disk that is accessed 
through a special driver as an ordinary device (preferably

him to appoint a device Q:, then work in the system 
dramatically speeds up), or by buffers (eg copiers).



    In January 1995, created another
variant iS-DOSa: "iS-DOS Chic" (isdos
chic), which uses the lower 16 KB to host an immutable part of 
the kernel. This was made possible by computers

KAY-256, Scorpion ZS-256, Spectrum-Profi
and others like them.


    These modifications allow the Spectrum at the bottom of the 
page memory to place the 0th memory bank. Instead, the vverhney 
page opens eighth bank. 


    At the bottom of page are positioned as
immutable rule of the system
programs (to be able to flash this
Page in ROM) decoder t42 and
t64 (2KB +1 KB), thereby increasing transit area almost doubled 
(up to 30 KB instead of 15 with a minimum number of residents 
and the 29-block cache). 


       Example Memory Allocation

               iS-DOS Chic

# 0010 rst # 10
# 003B driver routine email. Disk
# 0047 sign of the type of system / computer
# 0067 table for drivers email. Disk
# 0101 buffer driver ramdisk
# 0201 decoder t64 (1KB)
# 0601 is not used
# 093A system kernel (unchangeable part)
# 3800 decoder t42 (2KB)
# 4000 Screen
# 5DC0 region com-files
# A5A2 cache (49 blocks)
# D6F0 Channels
# DAD8 residents and drivers
# F365 level 4: shell
# F78C Level 3: win variable
# FA88 Level 2: com part
# FC0C Level 1: dud
# FDE6 level 0: dos


2. SOME COMMON WORDS:


    The system iS-DOS system call routines use the command
RST 16 (or RST # 10, if anyone likes
hexadecimal). In the iS-DOS
Classic must be opened the fourth channel
BASIC (after loading the way it is,
if you just called yourself a procedure
# 1601, or did not run in isdose say
MONS-4).


    The function code is applied in register C.
His elder 3 bits determine the level system. Usually they 
(levels) of 5 (with 0 to 4). Additional temporary rate

the number 7 puts a text editor.
The debugger sets the level number 5.
Additional levels are set as the database.


    This method of communication with the system or
own kernel package from the overlays extremely convenient, 
since the kernel and overlays completely untied the targeting 
and rebroadcast after the kernel does not need perelinkovyvat 
all overlays. Otherwise If after changing the system had

to recompile all the command and resident files a lot of 
drivers, etc. etc.



    When you work the majority of restarts
system saves registers BC, DE, HL,
IX and IY. Many restarts output
value register pair AF signals about the success of the 
operation. At the same time raised to "1" indicates an error 
flag C and register A in this case contains her code. In most 
cases, the errors we recommend simply put off by the flag C: 


    For example:


       LD C, # 02; flush

       RST # 10; call restart

       RET C; output error

           ...


    Some of the restart, such as
Restarts windowing technology $ wt, $ adrwt,
$ Box and others may come back with any flag, ie, no flag C, 
nor any one else Here are a sign of errors and handle them 
after the call is not restarted not only useful but also 
erroneous. In Later, when more detailed consideration of 
restarts for each of them will include possible errors. For 
some restarts is important not only flag C output, but also 
flag Z, as well as the contents of the registers. Such cases 
are negotiated separately. 


    Most of the restart, as has been
states retain the register pairs BC,
DE, HL, IX. Exception: Restarts $ exebat
and $ run. They transferred control of a batch file or a 
resident program. When leaving for RET'u of the callers

programs, we get straight to the main
program without going through the restore registers.


                WARNING!

         ALTERNATIVE REGISTERS

               WITH RST 1916

             NOT included!


    Moreover, it is of many restarts in the program return 
useful information such as addresses systemic vectors (arrays), 
the addresses or numbers block devices, the addresses of 
channels, drivers, etc., etc. The same input data You can pass 
only through the main registers. 

3. YOUR FIRST PROGRAM


    Program in isdose may be two
basic types: batch files and residents.


    Batch files (we'll talk about the resident later) have the 
extension *. com and loaded at the address specified in

12 th and 13 th byte of the file descriptor, in other words, 
offset 1912 dec (# 0C hex) in the descriptor file and run with 
the load address. You can call them from other programs on the 
command line restart run. For example: 


       LD HL, LINE; address command

                   ; Line put in HL

       LD C, # 48; $ run

       RST # 10

       RET C

, A description of the command line ends
; Code ENTER (# 0D)

       ...
LINE DEFM "Q: RES \ set user.res"

       DEFB # 0D


    From the shell command file isdosa
You can start summing to it a file
cursor and pressing Enter, or describing it in
text file Q: SHELL \ extkey.txt, or
from the monitor command line mon.res
(Mon +. Res, mon.com), as well as from
bat-file (for details, see the book Eliseeva "IS-DOS - Getting 
Started"). 


    Create a batch file that is not easy, but very simple. 
First, by text editor, create original

text file in your favorite standard assembler. We recommend our 
as2.com. The file must have extension *. as (some love *. asm). 
At the beginning of the program Set the load address directive 
ORG (Preferably not less than 24000):



       ORG 24000

Then place the body of your program.

Go isdos advise on the team:


       RET


    At normal output flag C should
be cleared, the Z flag is set, the register A code put off the 
operation: 

# 00 - do nothing

# F0 - reprint a current panel

      while it remains open to
      Tym current directory, which was

      panel before it, remains

      cursor position, a mark file

      reset.

# F1 - is the same, but the cursor is established
      is called the top panel.

# F2 - reprint both panels, retaining

      the current panel earlier open

      directory and the cursor position. Rewritten
      chatyvaetsya also the top line

      Hints, however, monitor window

      command line is not cleared.

# F3 - the same, but the cursor is placed in

      top panel.

# F4 - completely clears the screen and the census
      chatyvaet both the panel and the line below
      tale. To preserve the current panel
      varies previously opened directory and

      cursor position.

# F5 - the same, but the cursor is placed in

      top panel.

# F6 - a complete upgrade of the screen, the Census
      Chatcombe both panels and tips

      (As in F4), in addition to re-

      recreated the cache. Be the cache size
      is taken from vektroa g_cnfg with bias
      Niemi -6. Position the cursor and kata
      log in the current panel are saved.

# F7 - the same, but the cursor is placed in

      top panel.

# F8 - Reprint of the current panel with the Sox
      wound open directory position
      tion the cursor and mark files.

# 17 - (in older versions - # FB) - census
      Chatcombe current panel, while those
      kuschee device on it opens
      camping again (reread it Cor
      two-level directory).


    When an error flag C should be set in register A code is 
placed errors.



    Ottransliruyte program assembler otlinkuyte resulting object
program file link.com. To call them
You can write a bat-file, or you can simply
press Enter, by pointing the cursor at the first
asm-file, then obj (The file
Q: extent.txt the following lines:

asm: Q: AS \ as / auto
obj: Q: AS \ link / old / sym S: AS \ rst


    Use when writing a standard name restarts, then you
handy file of global labels
rst.obj, and the program will be more readable. Be sure to 
count the checksum com-file program ch.com. To do this, place 
the cursor on Your com-file and call the command

line program ch.com. In the case of
bat-file describe the call directly to ch.com
it.

4. TERMINATE


    Residency program in the system
IS-DOS is a program that constantly
located in a special area of ​​memory and, therefore, available 
for work in any time without podgruzki it from disk.



    Working with the resident program is divided into three 
stages: 

1. Installation (loading) in the memory with discrete
   ka, setting the address and initialization
   tion.

2. The main work

3. Removing the program from memory


    First and third stages are carried out
team set.com. It also creates a 18-byte channel, which 
describes the resident program.



    Installed (loaded) TSRs can be seen through programs 
show.com and eliminat.com. Contact the resident program by the 
name of the command line using the built-in command DOS "@", 
for example: 


              @ Date +3

                or

              @ Scan ch + *.*


    The last line contains just two
behalf of residents. This is because
Some resident programs are designed to work together with 
special official residents - scan.res and

univ.res. These utilities resident selects the file (on the 
mask, mark, etc.) and transmit them as parameter of the 
resident, it runs in a pair with them.



    T. of. You run a utility-resident program, citing
the first parameter the name of the working residents, and as a 
second - a key or a mask for selection of files. The service 
defines a resident by the name of the channel number Desktop 
resident, remembers him multiple runs at the number pre-opening 
the following file suitable for the given mask or key. 


    Residents, working together with residents and scan.res 
univ.res usually have special protection from a direct appeal

to them via the command "@".


  The structure of the residency program:

****************************************
Offset. Length comment
---------------------------------------
  0 2 Address initialization procedure
            tion. She called for ne
            displacements (with a reg. A

            served FF) or delete

            (In reg. A fed FE) prog
            Rummy SET.com. If this

            address is 0, then the procedure

            not called. This program

            must be connected if it

            requires the resident to the chain
            kidney interrupts or other
            On the other programa, intercept

            restart and restore

            them.


  February 2 Location of the main entrance, ie

            start-up procedure on behalf of

            restarts $ exebat (# 44)

            $ Run (# 48) or by number ka
            signal restart $ exeres (# 53)

            If the address is 0, then for
            is started with the 4-th byte.


  4 R Body program - actually

            machine code


  R +4 2 # FFFF - separates the body of
            program of follow-up case
            zhebnoy information


  R +6 2n table custom Adre
            owls - 1. Displacement from the beginning

            calculated by the LSA. Unit

            subtracted for emphasis just
            you're setting up such teams

            as: CALL, JP, LD HL,

            LD A, (nn), the most frequently

            encountered in the program.
---------------------------------------

    With the advent of programs and assembler
Collector (as.com and link.com) cares
of the separator and custom table
addresses a programmer disappeared. To
collect resident task should be only a reserve at the beginning 
of the file 4 bytes (2 words) to address points of entry (see

just reduced structure) and otlinkovat object file (s) with a 
key / Res. Be sure to only install ORG

different from zero, to address # FFFF is not
confused with the separator!

5. Device Drivers


    The driver - a resident program
special purpose. He serves
physical or logical unit of one of three types:

1. Block devices: files of type *. blk,
channel numbers of drivers F8 .. FF, facilities
channel devices - 00 .. 07

2. Symbolic output devices: files
Type *. typ and *. lpr, the channel numbers of drivers F0 .. 
F7, the channel number of devices - 08 .. 0F


3. Cimvolnye input devices: files
Type *. key channel numbers of drivers
E8 .. EF, the channel number of devices -
10 .. 1F


    Installed in the system the driver has only 8-character 
name (type in the channel not stored). typ of lpr can be 
distinguished on 0-th bit in the 13th byte of the driver

(The fifth byte in the vector g_typ (# 12)). At the beginning 
of each driver is the vector of the standard structure: 

****************************************
Offset. length of the name of the comment
---------------------------------------

  0 2 INST program initialization
                  function called as

                  for all residents

                  program SET.com, and

                  and each transition
                  switching of devices

                  Accepted drive
                  rum. In the regi
                  A number tends served

                  Devices


  February 2 ENTRY1 first entry point


  April 2 ENTRY2 second entry point


  June 2 ENTRY3 third entry point


  August 8 service information

                  stored in

                  description of the channel conditions
                  ful and in the vector

                  devices - Registers

                  state, will address
                  ferov etc.

 16 ... driver's body
---------------------------------------

    The entry point INST can be used as a driver on the 
appropriate device (involved in sys_driv and drivers drives), 
and also informs the driver (and resident) of

that it moved or disconnected.
All information fed into the register A:

A = 0 .. 7 - number of devices on which

         switch driver

A = FE - driver (resident) is disabled

         ie will be withdrawn, or just those
         kuschee device will soon be

         changed. This is done to the

         case if the driver in the operating

         able to intercept the inversion
         of to any restart or

         another driver.

A = FF - driver (resident) has just

         moved.


    Inputs ENTRY1, 2, 3 correspond
groups of system restarts IS-DOS:

****************************************
 Driver ENTRY1 ENTRY2 ENTRY3
--------------------------------------- Blk $ read $ write $ 
binit typ $ type $ tycpl $ typos

key $ key $ kwait $ ktest
---------------------------------------
Appendix: Structure drivers

            IS-DOS Device

****************************************
blk - block device
--------------------------------------- 0 2 INSTL - switching 
to a Device in 

                 or reinstallation

                 (If the value is 0,

                 the procedure is not needed)
 February 2 BREAD entry point
 April 2 BWRIT to restart
 June 2 BINIT (only drives

                 with removable media)
 August 1 SCCSR - status register:


    Bits 0 ... 2 - number of devices

                 cache

    Bit 3 - 0 - driver with buffer

                 1 - driver with no buffer

    Bit 4 - 0 - do not

                     autoflush

                 1 - execute autoflush

                     with each modification
                     cation of blocks in cache

    Bit 5 - 0 - prohibition of reading for

                     restarts

                 1 - read permission

                     to restart

    Bit 6 - 0 - ban entry for

                     restarts

                 1 - write permission

                     to restart

    Bit 7 - 0 - do not use cache

                 1 - use cache

 September 1 DRCSR - even the status register:


    Bit 0 - 0 - do not request

                     at QVST

                     (Vector g_cnfg bias
                     generalization +40) at about
                     increment to the block

                     device

                 1 - run the query

    Bit 1 - Flag autoflush (sbrasy
                 is called the user)

    Bit 2 - 0 - TR-DOS disk

                 1 - CD TR-DOS does not

    Bits 3 ... 6 - not used

    Bit 7 - 0 - not processed

                     error ($ erdrv)

                 1 - error handling

February 10 OFIM2 - offset from the beginning

                 driver code to IM2

                 in the process of recovery
                 leniya mode IM2 to you
                 During the driver.

                 If the value is 0,

                 then IM2 at the output is not

                 set
January 12 TPSYS - Type TR-DOS'a:

                 0 - 5.01

                 1 - 5.03 and above)
February 14 TMBUF - address of buffer driver

                 Buffer Size - 1Kb.


               ........

Feb. 20 ..... - Number of the current sector

                 in the buffer driver


               ........

Jan. 30 ..... - Drive type:


    Bit 0 - 0 - 40 tracks

                 1 - 80 tracks

    bit 1 - 0, - one-sided

                 1 - Two-way

January 31 TMWT - delay start reading

                 Sector
32 1 HTIME - while moving holo
                 FOC drive
33 1 ..... - Type of drive:


    Bit 0 - 0 - 40 tracks

                 1 - 80 tracks

    bit 1 - 0 - unilateral

                 1 - Two-way
34 1 ..... - The size of the sector, the value
                 of this byte:


                 A - 256 bytes

                 2 - 512 bytes

                 4 - 1024 bytes

35 1 ..... - Number of sectors

                 track

36 16 ..... - Table numbers of sectors
                 ditch on the track
------- Note: Bytes 8 ... 15 are also stored
in the channel and in the vector block device. 33 ... 51 bytes 
read from the disc, it is nothing as bytes 25 and 23 ...

64 ... 79 of the zero block descriptor disk. More information 
about drives, we'll talk a little later, when describing the 
restart $ binit. 

****************************************
typ - output device for display
---------------------------------------
 0 2 ..... - Usually not used
                 characterizes
 February 2 TYPE entry point for
 April 2 TYCPL restarts Print
 June 2 TYPOS characters

 Aug. 1 ..... - The width of the matrix of symbols

                 in points (6 for ty42 and

                 4 for ty64). Used
                 is restarts and y___

                 n___ level WIN
 April 9 ..... - Reserved
Jan. 13 ..... - Must be 0

                 (Sign typ)
Feb. 14 ..... - Reserved

February 16 GSZ size character generator

                 in bytes
18 GSZ actually znakogenera
                 torus driver
------- Note: ... 15 8 bytes are stored as
in the channel and in the vector character of the output 
device. Bytes, corresponding to a reserved used there for store 
the current coordinates and address printing error handling 
character output device. 

****************************************
lpr - output to printer
---------------------------------------
 0 2 ..... - Initialization of ports

                 printer if it is not
                 necessary
 Feb. 2 ..... - How to print the symbols
                 la, filed with the reg. A,
 April 9 ..... - Reserved
Jan. 13 ..... - Must be equal to 1

                 (Sign lpr)
Feb. 14 ..... - Reserved

------- Note: bytes 8 ... 15 are also stored
in the channel and in the vector character of the output device.

****************************************
key:
---------------------------------------
 0 2 ..... - Usually not used
                 characterizes
 February 2 TTYIN entry point for
 April 2 KWAIT restarts I
 June 2 KTEST Keyboard

 August 1 K_CSR - status register:


    Bit 0 - 0 - lowercase

                 1 - uppercase

    bit 1 - 0 - latin

                 1 - Russian

    Bit 2 - 0 - text

                 1 - pseudographics

    Bit 3 - 0 - permission kwait

                 1 - ban kwait (1)

                 This bit is reset

                 himself with an empty buffer
 September 1 M_CSR - mask permits change

                 corresponding bits

                 Register K_CSR

                 1 - change permitted

January 10 KLAST - code of the last pressed

                 keys
January 11 REPD - the interval between the first

                 two identical clusters
                 vishami (delay auto
                 repeat), the value of

                 Default - 29
January 12 REPP - the interval between subsequent
                 sponding the same cluster
                 vishami (the frequency of car
                 repeat), the value of

                 Default - 1
February 13 IKEYB - address of the procedure poll

                 Keyboard
Feb. 14 ..... - Reserved

February 16 KS - Size Code Table

                 Keys
1918 KS ..... - Proper table to
                 Dov keys


            ............

KS +18 1 PNKEY - the number of keystrokes
KS +19 1 - offset in buffer clusters
                 vish to code for TTYIN

                 (INC)
KS +20 32 ..... - Buffer keystrokes

                 (To be filled and oporozh
                 varies by INC)
---------------------------------------
****************************************


    Well, today, and all dear
readers in the next issue ZX Format
continuation of the book will be printed A.
Leontief, which will discuss restarting the lowest level of the 
system - the level of "DOS" (c # 00 to # 1F).






Other articles:

Authors Journal - ZX-Format No.5

From the authors - the fifth issue of the journal.

Toys - 48 Iron (Part 4).

Toys - on popolochkam: Castle Master # 1

Toys - short story by playing Robin Of Sherlock.

Programmers - Basic for Dummies - Part 5.

Programmers - artificial intelligence in computer games.

Programmers - TR-DOS programmers.

Programmers - a description and history of the creation MEM.

Programmers - exchange of experience: On the effects on the curb, and about something else.

Programmers - the exchange of experience: "Counting the Brain" - AUTOconfig v5.03.

Programmers - adventure: a sensible approach to passing.

IS-DOS - users: a guide to basic commands and utilities, basic kit IS-DOS.

IS-DOS - the programmer: a short course in programming in the IS-DOS.

IS-DOS - IS-NEWS - "News of the World IS-DOS".

IS-DOS - software and hardware support for IDE HDD for the ZX Spectrum.

Iron - KAY: ZX Spectrum Ttransformer.

Iron - Technology is a war.

Iron - General Sound.

Iron - XTR Modem.

Iron - Shema KEMPSTON MOUSE.

Iron - What if the Bat is not the correct type.

Iron - LPT COVOX and not only ...

Premiere - a program description Catalogue Master.

Premiere - description of the program Micro-editor. (MED)

Premiere - Text designer.

Interview - an interview with the developer of the clone HOBBIT (Part 2).

a rest - dictionary of advertising (with humor, but not without common sense!).

a rest - Memories of the future.

Mail - Letters from readers.

Mail - advertising and announcements.

Mail - Corner lamer (children under 16 years of reading strictly forbidden).

Miscellaneous - Outlook: a new game from Mednonogova "Black Crow".

Miscellaneous - Prospects: Pink Floyd - the new operating system for the Spectrum.

Miscellaneous - Prospects: the game's expansion.

Miscellaneous - It was you.

Miscellaneous - A review of the game Kings bounty II.

Miscellaneous - Competition for the best level of the game Laser Squad continues. New competition at the micro-demo.

Miscellaneous - Questionnaire for the readers.

Amiga - cri de coeur: Windows 95, and another about something.

Amiga - Amiga-Club, questions and answers.

Amiga - Project PowerUp - the next generation Amig.


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

Similar articles:
Forum - Davydov. According to materials published in the ZX-REVIEW: Some issues related to autostart BASIC programs. Redefine Keys. How to print 42 characters per line. The procedure of multiplication HL = B * C. Refinement cloning downloaders. Mini-driver disk.
Debut - parsing the two games: "Espionage Island" - adventyura and "Crypt" - continuation of the game "Castle Master".
Scene - cannibalism on the scene: "Camp Spectrum is divided into two hangouts: Western, European scene and the Russian ..."
From the Editor - O distributing the magazine.
Iron - Microprocessors Zilog: Z80, 1980, Z8000, Z80000.

В этот день...   3 May