ZX Format #01: IS-DOS: Características de la Interfaz de Ventana

Sección "IS-DOS - para programadores". No 1 Eliseev V. A. "Sistema de ventanas IS-DOS" (versión de revista)

(C) PENCRAFT 1995 (C) IskraSoft 1995

Una de las indudables ventajas del sistema operativo IS-DOS es su conveniente interfaz de ventanas, que permite al programador presentar su programa de manera atractiva.

La idea de la interfaz de ventanas, ausente en el sistema operativo tradicional ZX Spectrum, siempre ha atraído a los programadores que soñaban con que sus obras tuvieran un aspecto profesional. Una de las obras maestras de la tecnología de ventanas es, sin duda, el famoso "Interfaz de ventanas de Peter Cook", que se utilizó en muchos juegos, en los programas de marca Art Studio, ASTRO y incluso en algunas creaciones de programadores nacionales - DCU, FUT, STM, F Commander, etc.

Los desarrolladores del sistema IS-DOS, por supuesto, no se quedaron al margen y, reconociendo la importancia y la necesidad de implementar la tecnología de ventanas en un sistema profesional, dedicaron un nivel completo del sistema, que recibió el nombre de WIND.SYS.

El nivel WIND.SYS contiene 23 reinicios, que garantizan el trabajo con ventanas, líneas de caracteres, el cursor, etc. Con la ayuda de estos reinicios, se puede organizar la salida de información en la pantalla, el diseño de la pantalla de trabajo, así como establecer un diálogo con el usuario mediante un editor de texto. Desafortunadamente, el volumen de este artículo no permite examinar en detalle los 23 reinicios que componen el nivel WIND.SYS, por lo que ahora solo se hablará de 19 de ellos, que están directamente relacionados con el trabajo con ventanas y la información textual en ellas. La descripción del editor de texto y del sistema de gestión de paneles de archivos será objeto de un artículo separado en la sección "IS-DOS - para programadores".

Creación de ventanas.

El trabajo de cualquier interfaz de ventanas comienza, por supuesto, con el procedimiento de apertura de una ventana. Una ventana en el sistema IS-DOS tiene la siguiente estructura (ver fig. 1):

┌───────────────────────────────────────┐
│ │
│ │ área de ventana │ │
│ │ │ área de trabajo de ventana │ │ ││ │ │ │ │ │
│ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ │
│ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒ │
│ ▓▓ ░░░░░░░░░░░░░░░░░░░░ ▓▓▒▒ │
│ ▓▓ ░░░░░░░░░░░░░░░░░░░░ ▓▓▒▒ │
│ ▓▓ ░░░░░░░░░░░░░░░░░░░░ ▓▓▒▒ │
│ ▓▓ ░░░░░░░░░░░░░░░░░░░░ ▓▓▒▒ │
│ ▓▓ ░░░░░░░░░░░░░░░░░░░░ ▓▓▒▒ │
│ ▓▓ ░░░░░░░░░░░░░░░░░░░░ ▓▓▒▒ │
│ ▓▓ ░░░░░░░░░░░░░░░░░░░░ ▓▓▒▒ │
│ ▓▓ ░░░░░░░░░░░░░░░░░░░░ ▓▓▒▒ │
│ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒ │
│ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒ │
│ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ │
│ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ │
│ │
│ ▓▓▓ - área del marco │
│ │
│ ░░░ - área de impresión │
│ │
│ ▒▒▒ - área de sombra │
│ ││ - márgenes │
├───────────────────────────────────────┤
│ Fig. 1: Estructura de la ventana en IS-DOS │
└───────────────────────────────────────┘

El área de la ventana se define por los valores XS (tamaño X) y YS (tamaño Y), y se mide en caracteres de 8*8 píxeles, el área del marco tiene un ancho de 8 píxeles (1 carácter 8*8) en todo el perímetro de la ventana, por lo tanto, las dimensiones del área de trabajo de la ventana son XS-2 y YS-2. El tamaño y la ubicación en la ventana del área de impresión, así como el ancho de los márgenes izquierdo y derecho, se determinan por prnt pos. y print size y se miden en caracteres de 6*8. El borde superior e inferior del área de impresión está limitado solo por el área del marco.

El área de sombra representa el contorno de los lados inferior y derecho de la ventana con un grosor de 1 carácter de 8*8 y con un margen de 1 carácter desde los bordes izquierdo y superior del área de la ventana.

wt (#61)

En el sistema IS-DOS, para abrir una ventana se utiliza el reinicio wt (código #61). Este realiza la formación en pantalla de una ventana con parámetros establecidos en una tabla especial, llamada "vector de ventana". La dirección del vector de ventana en el momento de la llamada al reinicio debe estar en el par de registros IX, mientras que el contenido del registro A determina la apariencia de la ventana de la siguiente manera:

El séptimo bit, establecido en 1, hace que la ventana que se abre sea "transparente", es decir, la ventana se abre solo cambiando los atributos, y los píxeles dentro de ella no se restablecen.

Los otros bits determinan la apariencia del marco de la ventana:
000000 - marco simple
000010 - marco doble

Todos los demás valores conducen a abrir una ventana sin marco.

Por lo tanto, el formato para establecer la apariencia de la ventana se puede presentar en forma de tabla:

╔═════════╦══════════╤═════════╤════════╗
║ ║ marco simple│ marco doble │ sin ║
║ Ventana ║ marco │ marco │ marco ║
║ ║ │ │ ║
╟─────────╫──────────┼─────────┼────────╢
║ ║ │ │ A=#81 ║
║ transparente║ A=#80 │ A=#82 │ A=#83- ║
║ ║ │ │ #FF ║
║ ║ │ │ ║
╟─────────╫──────────┼─────────┼────────╢
║ ║ │ │ A=#01 ║║ no transparente║ A=#00 │ A=#02 │ A=#03- ║
║ ║ │ │ #7F ║
║ ║ │ │ ║
╚═════════╩══════════╧═════════╧════════╝

Así, el procedimiento para abrir una ventana en el sistema IS-DOS es el siguiente:

LD IX,WIND ;cargar en IX
;dirección del vector
;ventana
LD C,#61 ;cargar en C el código
;del reinicio wt
LD A,n ;cargar en A el valor ;que determina ;la apariencia de la ventana
RST #10 ;llamar al reinicio

Estructura del vector de ventana:

WIND DEFB #00 ;X-coordenada de la esquina ;superior izquierda
;de la ventana en caracteres
;8*8 píxeles
DEFB #00 ;Y-coordenada de la esquina ;superior izquierda
;de la ventana en caracteres
;8*8 píxeles

los valores de las coordenadas se cuentan desde la esquina superior izquierda de la pantalla

DEFB #0F ;altura de la ventana en caracteres ;8*8
DEFB #0F ;ancho de la ventana en caracteres ;8*8

DEFB %00000111 ;colores de la ventana

los colores se codifican de manera estándar:

bit 7 - flash
bit 6 - brillante
bits 5...3 - papel
bits 2...0 - tinta

DEFB %00000001 ;colores de la sombra de la ventana

Es notable que en los colores de la sombra de la ventana se puede establecer tanto el color de papel como el color de tinta, lo que permite hacer visible parte de la información sobre la que cae la sombra de la ventana y asegura una percepción máxima de naturalidad. Si el byte de colores de la sombra es igual a #FF, la sombra no se muestra.

DEFB #01 ;X-coordenada para
;el procedimiento de impresión
;de texto en la ventana
DEFB #12 ;ancho del área de impresión ;en la ventana

Los últimos dos parámetros se expresan en caracteres de tamaño 6*8, y no 8*8 como los demás, esto se hace porque este sistema de conteo es utilizado por todos los reinicios de impresión en IS-DOS. El valor de la coordenada X de impresión es absoluto y se cuenta no desde el borde izquierdo de la ventana, sino desde el borde izquierdo de la pantalla. La conversión de coordenadas de la ventana a coordenadas de impresión y viceversa se puede realizar mediante las fórmulas:

(1) n=N*8/6

(2) N=n*6/8,

donde n - valor en caracteres de 6*8, y N - valor en caracteres de 8*8.

La coordenada Y de impresión no se establece, ya que la mayoría de los reinicios de impresión la cuentan por sí mismos desde la línea superior de la ventana.

En la pantalla se pueden abrir varias ventanas, siendo la actual aquella cuya dirección del vector se encuentra en el par de registros IX. Con el fin de utilizar de manera más racional el volumen de RAM, la información que se cierra con la ventana en el momento de su apertura no se guarda, por lo que, si de repente necesita volver a la ventana anterior, tendrá que abrirla nuevamente.

Consideremos un ejemplo simple. La tarea es crear en el punto con coordenadas X=5 y Y=3 una ventana de tamaño 28*16 caracteres con marco doble, papel azul, tinta blanca y sombra negro-azul, y determinar el área de impresión de texto con un margen de 1 carácter desde el lado izquierdo y de 5 caracteres desde el lado derecho de la ventana.

Para crear este sencillo programa, además del reinicio de apertura de ventana wt(#61), necesitaremos tres subprogramas más: limpieza de pantalla, espera de pulsación de tecla y retorno a IS-DOS. La acción de estos subprogramas se basa en otros reinicios del sistema IS-DOS, que se describirán en los próximos números de la revista, y por ahora simplemente memorice los siguientes:

CLS LD C,#73 ;reinicio cls
RST #10 ;para limpiar la pantalla
RET

WAIT LD C,#07 ;reinicio ttyin
RST #10 ;para esperar la pulsación de una tecla
RET

EXIT XOR A ;salida estándar
LD A,#F4 ;en IS-DOS
RET

Así que, consideremos el Listado 1:

;****************************************
;Listado 1 Ejemplo de creación de ventana

;Datos de entrada:

; X-coord (X) = 5
; Y-coord (Y) = 3
; X-size (XS) = 20
; Y-size (YS) = 16
; W.Colors(WC) = %00001111
; S.Colors(SC) = %00000001
; L.Margin(LM) = 1
; R.Margin(RM) = 5

ORG #5D64

;programa principal

START CALL CLS ;llamar al procedimiento
;de limpieza de pantalla
LD IX,WIND ;dirección del vector de ventana
LD C,#61 ;código del reinicio wt
LD A,2 ;código de marco doble
RST #10 ;llamar al reinicio

CALL WAIT ;llamar al procedimiento
;de espera de tecla
JP EXIT ;ir al procedimiento de retorno a IS-DOS

;vector de ventana

WIND DEFB 5
DEFB 3
DEFB 16
DEFB 20
DEFB %00001111
DEFB %00000001
DEFB 8
DEFB 20

;Los datos para la posición de impresión (imprimir con un margen de 1 carácter 6*8 desde el borde izquierdo de la ventana) se obtuvieron mediante cálculo según la fórmula (3):

; (3) PP=X*8/6+LM,

;donde PP - posición de impresión en caracteres 6*8
; X - X-coord. de la ventana en caracteres 8*8
; LM - margen izquierdo en caracteres 6*8

;Los datos para el tamaño de impresión se obtuvieron mediante cálculo según la fórmula (4):

; (4) PS=XS*8/6-LM-RM,

;donde PS - tamaño de impresión en caracteres 6*8
; XS - tamaño de la ventana en caracteres 8*8
; LM - margen izquierdo en caracteres 6*8
; RM - margen derecho en caracteres 6*8

;subprogramas adicionales

CLS LD C,#73 ;reinicio cls
RST #10 ;para limpiar la pantalla
RET

WAIT LD C,#07 ;reinicio ttyin
RST #10 ;para esperar
RET

EXIT XOR A ;salida estándar
LD A,#F4 ;en IS-DOS
RET

;****************************************

Como resultado de la ejecución del programa Listado 1, en la pantalla debería aparecer una ventana correspondiente a la imagen en la fig.2, de lo contrario, verifique la corrección de la entrada del programa.

┌───────────────────────────────────────┐
│ │
│ ││ ╔═══════════════════╗ │
│ ║ ║▒ │
│ ║ ║▒ │
│ ║ ║▒ │
│ ║ ║▒ │
│ ║ ║▒ │
│ ║ ║▒ │
│ ║ ║▒ │
│ ║ ║▒ │
│ ║ ║▒ │
│ ║ ║▒ │
│ ║ ║▒ │
│ ║ ║▒ │
│ ║ ║▒ │
│ ║ ║▒ │
│ ╚═══════════════════╝▒ │
│ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ │
│ │
│ │
├───────────────────────────────────────┤
│ Fig. 2: resultado del trabajo del programa │
│ Listado 1 │└───────────────────────────────────────┘ ... box (#62) El siguiente reinicio box(#62) permite dibujar o borrar en el área del marco de la ventana cualquier marco posible, o cualquiera de sus lados en cualquier combinación. Dado que el ancho del área del marco en la ventana IS-DOS es de 8 píxeles, es posible un total de 8 marcos simples diferentes. Llamando al reinicio box varias veces se pueden dibujar marcos dobles, triples e incluso cuádruples, así como marcos de diferentes grosores - un total de 256 combinaciones. Como parámetros de entrada, el reinicio box(#62) utiliza el vector de ventana, cuya dirección se establece en el registro IX, así como los valores de margen desde el borde de la ventana por Y y por X en píxeles, que se establecen en los registros D y E respectivamente, y el contenido del registro A, que determina qué es lo que se requiere dibujar o borrar. El contenido del registro A se determina de la siguiente manera: bit 7=0 - dibujar, 1 - borrar; bits 6...4 - no se utilizan; los otros bits muestran con cuáles de los lados del marco se realiza la operación: bit 3=0 - lado izquierdo del marco; bit 2=0 - lado derecho del marco; bit 1=0 - lado superior del marco; bit 0=0 - lado inferior del marco. Para los bits 3...0 son posibles combinaciones de cualquier tipo. La forma general del procedimiento de dibujo/borrado de un marco es la siguiente: LD IX,WIND ;dirección del vector de ventana LD C,#62 ;código del reinicio box LD D,N1 ;margen por Y LD E,N2 ;margen por X LD A,n ;qué hacer RST #10 ;llamar al reinicio Para establecer los valores de margen del marco, es preferible utilizar números del 0 al 7, de modo que al cargar en los registros D y E el valor 0, el marco se dibuje en el borde exterior de la ventana, y al cargar el valor 7 - en el borde interior del área del marco. El valor 8 dará el mismo efecto que 0, 9 - el mismo que 1, etc. Consideremos un ejemplo. Tomemos como base el Listado 1, pero primero dibujemos la ventana sin marco, y luego mostraremos un marco doble de modo que su línea exterior sea el doble de ancha que la interior, después haremos que los lados izquierdo y derecho del marco exterior sean de grosor simple. ;**************************************** ;Listado 2 Ejemplo de dibujo de un marco de ventana ORG #5D64 ;apertura de ventana START CALL CLS ;limpiar la pantalla LD IX,WIND LD C,#61 LD A,1 ;ventana sin marco RST #10 CALL WAIT;dibujar el marco exterior de doble grosor;se realiza en dos pasos LD IX,WIND ;dirección del vector de ventana LD C,#62 ;código del reinicio box LD D,0 ;margen por Y LD E,0 ;margen por X LD A,%00000000;todos los bits iguales a 0 - dibujar todo el marco RST #10 LD IX,WIND LD C,#62 LD D,1 LD E,1 LD A,%00000000 RST #10 CALL WAIT;dibujar el marco interior LD IX,WIND LD C,#62 LD D,3 LD E,3 LD A,%00000000 RST #10 CALL WAIT;borrar los lados laterales LD IX,WIND LD C,#62 LD D,2 LD E,1 LD A,%10000011;el séptimo bit está establecido - comando de borrado;los bits 0 y 1 establecidos indican que en esta operación no se tocan los lados superior e inferior del marco RST #10 CALL WAIT JR EXIT;vector de ventana WIND DEFB 5 DEFB 3 DEFB 16 DEFB 20 DEFB %00001111 DEFB %00000001 DEFB 8 DEFB 20;subprogramas adicionales CLS LD C,#73 RST #10 RET WAIT LD C,#07 RST #10 RET EXIT XOR A LD A,#F4 RET;**************************************** Si es necesario organizar marcos, dibujar líneas verticales y horizontales dentro de la ventana (fuera del área del marco), también se puede utilizar el reinicio box(#62), sin embargo, para ello será necesario crear un vector de ventana ficticio de tal manera que el marco requerido se ajuste dentro del área del marco de esta ventana imaginaria. Vamos a explicarlo con un ejemplo: Supongamos que es necesario crear dentro de la ventana (ver Listado 1) un marco con un margen de 2 caracteres desde el borde superior de la ventana, 4 desde el inferior y 3 desde los lados izquierdo y derecho. Para ello, crearemos un vector de ventana ficticio WIND1, y para calcular sus parámetros utilizaremos las siguientes fórmulas: (5) Y1=Y+UM, donde Y1 - Y-coordenada del marco, Y - Y-coordenada de la ventana, UM - margen superior (6) X1=X+LM, donde X1 - X-coordenada del marco, X - X-coordenada de la ventana, LM - margen izquierdo (7) YS1=YS-UM-DM, donde YS1 - tamaño del marco por Y, YS - tamaño de la ventana por Y, UM - margen superior, DM - margen inferior (8) XS1=XS-LM-RM, donde XS1 - tamaño del marco por X, XS - tamaño de la ventana por X, LM - margen izquierdo, RM - margen derecho Todas las magnitudes se miden en caracteres de 8*8. Elegiremos los mismos valores de colores que en la ventana principal, pero sin sombra (S.Colors=#FF), los valores de Print pos. y Print size pueden ser cualquieros. Así que;**************************************** ;Listado 3 Ejemplo de dibujo de marcos internos utilizando box(#62) ;Datos de entrada: ; Up Margin (UM) = 2 ; Down Margin (DM) = 4 ; Left Margin (LM) = 3 ; Right Margin (RM) = 3 ORG #5D64 ;apertura de ventana START CALL CLS ;limpiar la pantalla LD IX,WIND LD C,#61 LD A,2 RST #10 CALL WAIT;no es necesario dibujar la segunda ventana, basta con colocar la dirección de su vector en el registro IX para pasar parámetros al reinicio box;dibujar el marco dentro de la ventana LD IX,WIND1 ;vector del marco LD C,#62 LD D,0 LD E,0 LD A,%00000000 RST #10 CALL WAIT JR EXIT;vector de ventana WIND DEFB 5 DEFB 3 DEFB 16 DEFB 20 DEFB %00001111 DEFB %00000001 DEFB 8 DEFB 20;vector de ventana para el marco WIND1 DEFB 8 DEFB 5 DEFB 10 DEFB 14 DEFB %00001111 DEFB #FF DEFB #00 DEFB #00;subprogramas adicionales CLS LD C,#73 RST #10 RET WAIT LD C,#07 RST #10 RET EXIT XOR A LD A,#F4 RET;**************************************** Como resultado del trabajo del programa Listado 3, en la pantalla debería aparecer la imagen mostrada en la Fig. 3 ┌───────────────────────────────────────┐ │ │ │ │ │ ╔═══════════════════╗ │ │ ║ ║▒ │ │ ║ ┌───────────┐ ║▒ │ │ ║ │ │ ║▒ │ │ ║ │ │ ║▒ │ │ ║ │ │ ║▒ │ │ ║ │ │ ║▒ │ │ ║ │ │ ║▒ │ │ ║ │ │ ║▒ │ │ ║ │ │ ║▒ │ │ ║ │ │ ║▒ │ │ ║ └───────────┘ ║▒ │ │ ║ ║▒ │ │ ║ ║▒ │ │ ║ ║▒ │ │ ╚═══════════════════╝▒ │ │ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ │ │ │ │ │ ├───────────────────────────────────────┤ │ Fig. 3: resultado del trabajo del programa │ │ Listado 3 │ └───────────────────────────────────────┘ De manera similar se llevan a cabo las líneas verticales y horizontales: se representan como lados de un marco imaginario y se establecen mediante un vector de ventana ficticio. Ajustando el contenido de los registros D y E, es fácil lograr la posición del marco o línea con una precisión de 1 píxel. Continuará... En el próximo número hablaremos de otro grupo no menos importante de reinicios del sistema IS-DOS: los reinicios de impresión de caracteres y líneas.

Contenido de la publicación: ZX Format #01

  • IS-DOS
    IskraSoft presenta IS-DOS Classic 4.0 con funciones avanzadas de edición de texto, una utilidad de disco, un controlador de disco duro para ZX Spectrum y un depurador de programas.
  • IS-DOS - Владимир Елисеев
    Descripción general de IS-DOS para ZX Spectrum, destacando sus ventajas sobre TR-DOS. Discusión sobre la instalación, uso y gestión de archivos en IS-DOS. Introducción a utilidades del sistema e interfaz similar a Norton Commander.
  • IS-DOS - Владимир Елисеев
    El artículo ofrece una guía concisa del disco del sistema IS-DOS, enumerando todos los archivos esenciales con explicaciones. Los archivos están ordenados alfabéticamente y agrupados por directorios para una fácil navegación. La guía se centra en una visión general básica de archivos y comandos sin descripciones extensas.
  • IS-DOS - Владимир Елисеев
    Discusión sobre el estándar UniColor para configuraciones de color en programas IS-DOS, su implementación y ventajas para la personalización del usuario.
  • IS-DOS - Владимир Елисеев
    Discusión de las características de la interfaz de ventanas de IS-DOS. Implementación del sistema de ventanas en IS-DOS y sus ventajas. Ejemplos de programas para crear ventanas y marcos.
  • IS-DOS - Владимир Елисеев
    Descripción del funcionamiento interno del programa gmen.com para IS-DOS, centrándose en la gestión de dispositivos y el manejo de menús con código fuente detallado y comentarios.
  • Hardware - Vladimir Larkov
    Discusión sobre la modificación del hardware Scorpion ZS-256 para compatibilidad con software específico. Describe el bloqueo del puerto #1FFD para ejecutar programas incompatibles. Ofrece detalles técnicos para la implementación.
  • Железо - Nemo
    Discusión sobre dispositivos de frenado para ZX Spectrum. Enfoque en la creación e impacto de frenos en procesadores acelerados. Advertencia sobre posibles efectos secundarios.
  • Железо
    Discusión sobre la impracticidad de reparar computadoras viejas y la sensatez económica de reemplazarlas por hardware moderno. El artículo destaca los desafíos en las reparaciones caseras y sugiere soluciones alternativas. Enfatiza los beneficios de actualizar a componentes más nuevos y confiables.
  • Железо
    Discusión sobre nuevos desarrollos periféricos para Scorpion ZS 256, incluyendo un innovador controlador universal e interfaz MIDI. Destaca mejoras en controladores de teclado y ratón y expansión de capacidades de software incorporadas. Ofrece detalles sobre la extensión ROM profesional y el modo turbo para un mejor rendimiento.
  • Игрушки - Ruster
    Un recorrido detallado del juego Crystal Kingdom Dizzy, incluidas soluciones a rompecabezas y consejos para avanzar en la historia.
  • Игрушки - Павел Рындин
    Descripción del juego de lógica 'Toros y Vacas', su mecánica y jugabilidad. Explica niveles de dificultad y el objetivo de adivinar un número con intentos mínimos.
  • Игрушки - Вячеслав Медноногов
    Discusión sobre los matices del juego 'UFO: Enemy Unknown', centrándose en las especies alienígenas, sus tácticas y estrategias de juego. Detalles sobre la mecánica del juego y la futura secuela 'UFO-2: Devils of the Abyss'. Incluye ideas de programación e historia de desarrollo.
  • Игрушки - SParker
    Visión general de juegos y software en el mercado de San Petersburgo en 1995.
  • Интервью
    Vyacheslav Mednonogov comparte su viaje como programador, desde ensamblar su primer Spectrum-48 hasta desarrollar juegos destacados como 'UFO. Enemy Unknown'. Describe los desafíos e ideas en el desarrollo de juegos y el auge de la localización de juegos rusos. Sus experiencias destacan la evolución de la programación y la distribución de software en los años 90.
  • Информация
    Introducción a ZX-Format, una nueva revista electrónica para entusiastas del ZX Spectrum, centrada en juegos, programación, hardware e interacción comunitaria.
  • Конкурс
    Discusión sobre la organización de un nuevo concurso para la revista. Se invita a los lectores a enviar sus ideas de temas. Los temas seleccionados se presentarán en futuros números.
  • Конкурс
    ZX Format anuncia un concurso para la mejor misión creada con el editor de misiones para el juego Laser Squad. Se aceptan envíos por correo o en persona. El ganador recibe una caja de discos 3M y el próximo número gratis.
  • Отдохнём - Килат Амор
    Un día de un programador lleno de sueños, juegos y charlas casuales. Vasetchkin equilibra ambición con relajación, encarnando el espíritu del programador. Reflexiona sobre las demandas y el disfrute de la vida de un programador.
  • Buzón de correos - RML
    Discusión sobre ofertas de hardware y software en San Petersburgo por LOGROS y Create Soft, incluyendo detalles sobre la interfaz Kempston Mouse.
  • Buzón - SParker
    Compilación de códigos de trucos para juegos de ZX Spectrum por Sergey Pavlov. Técnicas para vidas extra e inmortalidad. No recomendado para los amantes del juego limpio.
  • Buzón
    Descripción de las directrices de envío para cartas y artículos a la revista, incluyendo formato y preferencias de envío.
  • Премьера - Алексей Щекин
    Jugabilidad del juego Lines en ZX Spectrum, similar a Color Lines. Mueva las bolas para formar líneas del mismo color. Se describen la puntuación y los controles.
  • Программистам - Дмитрий Рудовский
    Introducción a técnicas avanzadas de programación en BASIC para ZX Spectrum 48, destacando sus ventajas sobre el BASIC 128. Planes para futuros artículos incluyen programas de servicio y extensiones de lenguaje. El artículo sirve como guía para programadores con experiencia.
  • Программистам - Михаил Спицын
    Introducción al lenguaje ensamblador en ZX Spectrum. Explicación de la estructura del procesador Z80, registros y comandos básicos. Incluye ejemplos de programas para aprender.
  • Программистам - Андрей Седов
    Editor de misiones para Laser Squad de Andrey Sedov permite a los fans crear nuevas misiones. Incluye interfaz amigable con controles mínimos. Ofrece funciones como edición de objetos, ajustes de precios y asignación de sprites.
  • Varios
    Historia del desarrollo de la computadora Amiga, sus creadores y características clave. Evolución de los juegos arcade a una computadora doméstica líder. Éxito en el mercado y avances tecnológicos de Amiga.
  • Разное
    Revisión de próximos productos de software para ZX Spectrum con demos. Destacan juegos de aventura, pruebas de RPG y tácticas estratégicas. Varios desarrolladores conocidos contribuyen a estos lanzamientos.