Sobre la codificación para principiantes.
música de COOPER (C) CREATOR producto 1997
_______________________________
Así que este artículo está destinado a aquellos que ya han comenzado a estudiar ensamblador y quieren continuar de alguna manera, pero no saben cómo exactamente. Tal vez pueda ayudarles un poco.
Para empezar, discutamos algunos términos técnicos: bit - es la unidad más pequeña de información, puede ser 0 o 1. Byte - son 8 bits, apilados juntos, puede tomar un valor de 0... 255. Palabra = 2 bytes - puede tomar valores de 0... 65535. Ciclo - es una unidad de medida de tiempo para el procesador, por ejemplo, como para nosotros son segundos, solo que para el procesador son ciclos. Cada instrucción se ejecuta en un número determinado de ciclos (la más rápida en 4 ciclos). Aquí, como ejemplo, algunas instrucciones:
instruccióncódigo ciclos
NOP #00 4
LD HL,NN #21 N N 10
LD A,N #3E N 7
LD A,(NN) #3A N N 13
SRL (IX+S) #DD #CB S #3E 23
El número de ciclos que toma ejecutar una instrucción se puede encontrar en algunos libros, por ejemplo: "Cómo escribir un juego en ensamblador" o "Programación en códigos de máquina en lenguaje ensamblador" Inforcom 93. Tengo el segundo en mi escritorio y debo decir que ayuda bastante a menudo. Sin embargo, casi en todas las tablas hay pequeños errores.
Así que parece que hemos establecido una base inicial y ahora podemos continuar profundizando nuestros conocimientos. Lo primero que es necesario (por supuesto) - conocer las instrucciones de ensamblador.
En segundo lugar: sería bueno conocer Basic o algún otro lenguaje de programación, de lo contrario será realmente difícil...
Registros del procesador
- se usa solo como par de registros
+ se puede usar uno a la vez
* se puede usar solo uno
AF + AF'+ IR * SP -
BC + BC'+ IX +
DE + DE'+ IY +
HL + HL'+ PC -
PC - aunque no es un registro en el sentido de utilidad para nosotros, apunta a la dirección de trabajo del procesador, es decir, en qué dirección el procesador ejecuta la instrucción. Es necesario para el propio procesador, por ejemplo, al ejecutar la instrucción CALL #nnnn, el procesador toma el registro PC y lo coloca en la pila para saber a dónde regresar. IR - No es un par de registros, sino registros individuales, I - apunta al vector de interrupción (en IM 2, en IM 1 no se usa), y el registro R se necesita para la regeneración de la RAM, se incrementa con la ejecución de cada instrucción. A - Registro aritmético, con él se puede hacer todo lo que se quiera. Las instrucciones ADD, ADC SUB, OR, XOR, AND, CPL funcionan con él y otro dato (número o registro). HL - el registro se puede usar como aritmético, pero de dos bytes. También a través de él se puede especificar la dirección de los datos, por ejemplo LD A,(HL), se colocará en el registro A el dato de la celda de memoria con la dirección contenida en HL. O realizar direccionamiento indirecto, por ejemplo JP (HL), se realizará un salto a la dirección contenida en el par de registros HL. DE, BC - son casi idénticos, solo que el registro B se usa como contador en las operaciones DJNZ #nnnn. Y el par de registros DE se puede cambiar fácilmente con HL con un solo comando EX DE,HL. Estos registros tienen, en su mayoría, la misma finalidad.
F - registro de bandera. Contiene información sobre eventos pasados en la siguiente forma:
bit nombre contenido
0 C bandera de acarreo, se establece dependiendo de si hubo un desbordamiento del registro. Por ejemplo, si sumamos 10 y 20, obtendremos 30, esto no excede 0 o 255, y el bit 0 se reiniciará (está en 0). Si restamos 10 de 20, obtendremos 246 (ya que el procesador no tiene números negativos) y el bit 0 se establecerá en 1. Lo mismo ocurrirá si la suma es mayor a 255.
1 N bandera de suma/resta
2 P/V bandera de paridad/desbordamiento
3 no se usa
4 H bandera de medio acarreo
5 no se usa
6 Z bandera de cero, se establece dependiendo de si se obtuvo un resultado igual a cero. Por ejemplo, si restamos 10 de 10, se establecerá en 1, si restamos 10 de 20, se reiniciará.
7 S bandera de signo
En las primeras etapas solo necesitarás dos banderas - la bandera de acarreo y la bandera de cero. Las otras banderas se utilizan raramente incluso por programadores muy experimentados.
IX, IY - registros de índice. Es decir, con su ayuda se organiza fácilmente el acceso a una tabla o matriz. El método de indexación es el siguiente: por ejemplo, en los registros A, B, C, D y E se deben cargar los elementos de la matriz (TAB) 0, 1, 2, 3 y 4.
LD IX,TAB ; establecemos ; el registro al inicio de la tabla. También ; se puede usar el registro IY, pero ; con más cuidado, lo usa Basic para ; sus necesidades.
LD A,(IX+0)
LD B,(IX+1)
LD C,(IX+2)
LD D,(IX+3)
LD E,(IX+4)
SP - puntero de pila. Apunta a una parte de la memoria reservada para un almacén de datos. Es conveniente almacenar direcciones/datos que deben guardarse temporalmente. También se utilizan los comandos CALL, RET, EX (SP), HL... Si, por ejemplo, no hay suficientes registros y se necesita guardar un resultado intermedio en algún lugar, se hace, por ejemplo, PUSH HL, y el par de registros HL se guarda en la pila, y el registro SP se reduce en 2. No olvides que si guardaste algo en la pila, debes retirar esos datos antes de salir del procedimiento/programa, de lo contrario, el comando RET obtendrá en lugar de la dirección de retorno el último valor puesto en la pila.
En el procesador hay dos conjuntos de registros, el conjunto alternativo se puede usar cuando se necesita procesar una gran cantidad de información y no hay suficientes registros del conjunto principal. Dado que no se pueden usar simultáneamente, existe un comando para su intercambio rápido. Los HL' DE' BC' alternativos reemplazan a los actuales HL DE BC, mediante el comando EXX, el registro AF se cambia a AF' con un comando separado EX AF, AF'. Estos dos conjuntos no se diferencian en nada y no es posible determinar cuál de ellos es alternativo.
Editores
Para escribir programas en ensamblador se necesita un editor (ensamblador), hay muchos en la actualidad TASM, ALASM, MASM, PASM ZXASM, XAS... Yo escribo en XAS versión 7.446, en realidad no he visto nada mejor hasta ahora, pero cada uno tiene lo suyo, mira todo lo que puedas y elige el tuyo. Y para familiarizarte con el editor, es recomendable leer su descripción. Cada uno de ellos es bastante peculiar (puramente funcional, así que se puede escribir en cualquiera de ellos, pero con diferentes comodidades) así que los comentarios aquí son innecesarios.
Cómo empezar.
Personalmente comencé a escribir en ensamblador el mismo día que empecé a estudiarlo. La cosa fue así: ya entendía bien Basic y escribí un comando y una base de datos. La velocidad de trabajo (especialmente de la base de datos) era simplemente horrible. Y me sumergí en ensamblador, estudiándolo gradualmente, traducía líneas de Basic a instrucciones de código de máquina. Al final, obtuve un doble beneficio: hice un comando rápido (para esos tiempos) y aprendí los fundamentos del trabajo en ensamblador. Por supuesto, al principio usé la ROM de Basic y sus subprogramas, no hay nada de malo en eso, incluso te ayudará en gran medida. No intentes hacer todo en ensamblador desde el principio, será más fácil para ti.
Empezamos...
Así que ahora es hora de comenzar a traducir algún programa en Basic a ensamblador, utilizando la ROM y sus procedimientos. Toma un librito con sus descripciones (de los procedimientos de Basic) y comienza.
Si no tienes nada adecuado, puedes escribir simultáneamente en Basic y en ensamblador. No es recomendable usar números fraccionarios, senos, etc., ya que trabajar con ellos en ensamblador es algo diferente de Basic y es complicado para los principiantes.
Voy a dar algunas aclaraciones sobre la traducción de Basic a ensamblador. En esencia, los registros del procesador son análogos a las variables en Basic. Los bucles FOR... NEXT también se reemplazan fácilmente con el uso de registros/celdas de memoria (direccionamiento indirecto), o LD B, N... DJNZ LABEL. Las llamadas a subprogramas GOSUB... RETURN son equivalentes a CALL... RET, GOTO N = JP #NNNN, y así sucesivamente...
Al comenzar a escribir en ensamblador, nos liberamos de las limitaciones de Basic, de su "tutela" y obtenemos el procesador en plena propiedad. Por ejemplo, el procesador no tiene idea de qué es una pantalla, para él es un trozo de memoria como todos los demás, así que tendrás que trabajar con la pantalla tú mismo.
Avanzamos...
Si ya sabes escribir usando la ROM de Basic, entonces todo está excelente. Debemos avanzar. Vamos a reemplazar poco a poco los procedimientos de la ROM por los nuestros.
Aquí, por ejemplo, imprimir un carácter en la pantalla - uno de los procedimientos más necesarios. A continuación se muestra una de las variantes más rápidas para imprimir caracteres 8x8. Imprimir líneas usando este procedimiento no será difícil. La llamada al procedimiento debe hacerse de la siguiente manera:
en el registro A - código del carácter a imprimir, en el registro DE - coordenadas en la pantalla
las coordenadas comienzan desde la esquina superior izquierda)
;Procedimiento para imprimir un carácter, código del carácter
;en el registro A, coordenadas en el registro DE
PRINT LD L,A ;Contamos la cantidad necesaria
LD H,0 ;de bytes en
ADD HL,HL ;la fuente, ya que
ADD HL,HL ;un carácter ocupa
ADD HL,HL ;8 bytes, simplemente multiplicamos
;el código del carácter necesario por 8 y sumamos la dirección de la fuente
LD BC,15360
;Dirección de la fuente en la ROM, puedes crear tu propia fuente y señalar aquí
;su dirección !PERO! Ten cuidado, este procedimiento comienza a imprimir con el código del carácter #00, y las fuentes estándar (768 bytes) con
;el código del carácter 32. Así que, si vas a usar tal
;fuente, entonces pon en la primera línea del procedimiento PRINT SUB 32
ADD HL,BC
CALL POSIT
;Calculamos la dirección real en la pantalla según las coordenadas
LD B,8
PRINT1 LD A,(HL)
LD (DE),A
INC HL
INC D
DJNZ PRINT1
RET
;Procedimiento para convertir coordenadas de un punto en la pantalla a una dirección real,
;las coordenadas están en el registro DE. D - fila E - columna, en la salida en DE - dirección
POSIT LD A,D
AND 7
RRCA
RRCA
RRCA
OR E
LD E,A
LD A,D
AND #18
OR #40
LD D,A
RET
Si es necesario, también se puede imprimir con colores. Para esto, después de llamar al procedimiento POSIT, coloca: CALL COLOR y el procedimiento de impresión con color está listo.
COLOR LD A,D
AND %00011000
RRCA
RRCA
RRCA
OR #58
LD B,A
LD C,E
LD A,(color) ; celda de memoria,
LD (BC),A ; donde se almacena
RET ; byte de color
Imprimir una línea. Para este procedimiento, se deben indicar los siguientes datos: en el registro HL - dirección del texto que se imprimirá, al final del texto debe haber obligatoriamente un byte 0, para encontrar el final (puede ser reemplazado por cualquier otro). En el registro DE - coordenadas en la pantalla.
PR_LINE LD A,(HL)
AND A
RET Z
PUSH DE
CALL PRINT
POP DE
INC E ; incremento de coordenada
; para imprimir de izquierda a derecha
JR PR_LINE
Imprimir números, también es una tarea que se encuentra con frecuencia. Su trabajo consiste en convertir un número real en una cadena de caracteres.
Por ejemplo, tomemos un byte para convertirlo en forma de carácter. Para esto, es necesario asignar tres variables, ya que puede tomar valores de 0 a 255. Tomaremos los registros B, C, A. B - centenas, C - decenas, A - unidades. Así que colocamos el byte necesario para la conversión en el registro A. Después de salir del procedimiento, tendremos la representación en caracteres del número en los registros B, C y A, y el método para mostrarlos en la pantalla elige tú mismo.
NUM_LINE
LD B,48
LD C,B
CP 200 ; hay centenas
JR C,SM_200
LD B,"2"
SUB 200
SM_200 CP 100
JR C,SM_100
INC B
SM_100 CP 10 ; hay decenas
JR C,SM_10
INC C
SUB 10
JR SM_100
SM_10 ADD A,48 ; unidades
RET
Y eso es todo, para convertir números grandes nada cambiará drásticamente, simplemente aumentará el número de ciclos dentro. Por supuesto, este no es el método más rápido, pero es uno de los más accesibles para entender.
Luego, puedes tomar algún depurador y ver cómo están hechos los procedimientos en la ROM. Intenta reescribirlos.
Ahora creo que sería bueno repasar los puntos más críticos del programa (en términos de velocidad):
1. bucles - definitivamente consumen mucho tiempo, y no se recomienda guardar nada en la pila dentro de ellos, se deben usar otros registros siempre que sea posible. Hablando de registros, es muy conveniente usar como tales LX, HX, LY, HY, si todos los demás ya están ocupados. Pero aquí también hay dificultades, algunos ensambladores no pueden soportarlo (cambios en los registros IX, IY), y es mejor no cambiar el registro IY, luego será útil, si es posible, es mejor conformarse con IX. Hablando de registros, si aún no lo sabes, el registro IX se puede usar como dos registros HX - byte alto, LX - byte bajo. En general, los libros sobre esto no dicen nada. Algunos comandos que utilizan las mitades de IX e IY se forman bastante fácilmente: basta con agregar el prefijo #DD a un comando que trabaja con el registro H o L para HX y LX, #FD para HY y LY.
Así que, como ejemplo, tomemos un bucle en el que están ocupados todos los registros, excepto IX y se tiene que usar la pila: (las ventajas de los registros A, C, D, E, L, H ni siquiera valen la pena demostrar)
LD B,100 ; 7
LOOP PUSH BC;11
...
POP BC;10
DJNZ LOOP ; 13
Así que, el trabajo del ciclo tomará: (99*13)+7+(100*(11+10))+7= 3401 ciclos.
Reemplazamos el registro B por LX...
LD LX,100 ; 8
LOOP
...
DEC LX ; 8
JP NZ,LOOP; 10
Ahora resulta: 100*(8+10)+8=1808 ciclos! la diferencia es obvia, aproximadamente 1.88 veces.
También en los bucles se debe evitar los comandos JR x, nnnn ya que ocupan 12 ciclos si se cumple la condición y 7 si no. En los bucles esto no es razonable.
2. ramificación del programa: supongamos que tienes un número y dependiendo de él debes saltar a la correspondiente procedimiento, esto se puede implementar así:
LD A,(NUMBER) ; 13
CP 0 ; 7
JR Z,NUMBER0 ; 12/7
CP 1 ; 7
JR Z,NUMBER1 ; 12/7
CP 2 ; 7
JR Z,NUMBER2 ; 12/7
...
o así:
LD A,(NUMBER) ; 13
AND A ; 4
JR Z,NUMBER0 ; 12/7
DEC A ; 4
JR Z,NUMBER1 ; 12/7
DEC A ; 4
JR Z,NUMBER2 ; 12/7
...
También es notable que la segunda es más rápida. Aquí reemplacé CP 0 por AND A, porque ambos afectan las banderas de la misma manera, y AND A se ejecuta más rápido (también para comprobar si es 0 se puede usar OR A). En este procedimiento es mejor usar el comando JR que JP, ya que la probabilidad de que se active una rama específica es mucho menor que el 50%, y así se deben seleccionar estos comandos (no olvides que JR solo puede 'saltar' hasta 128 bytes, no más y si los procedimientos están a gran distancia, no hay forma de evitar JP)
3. sondeo del teclado: Si necesitas sondear de 1... 10 teclas, puedes recurrir a la lectura directa de los puertos del teclado:
LD A,#7F
IN A,(#FE)
;ahora los cinco bits menos significativos del registro A tendrán los valores de las teclas: 0 - bit de espacio, cambio de símbolo, m, n, b si el bit es 0, la tecla está presionada, si 1, no. ¡De ninguna manera compares los datos con un número! Los 3 bits más significativos pueden ser cualquier cosa y además si se presiona más de una tecla?... ahora probemos, por ejemplo, el botón de espacio, su valor en el bit cero del reg. A
BIT 0,A
JP Z,PRESS_SPACE
;también se puede hacer así, usando el comando de rotación RRCA, funciona así: bandera C>76543210>C, es decir, nuestro resultado estará en la bandera CARRY
RRCA
JP NC,PRESS_SPACE
Esto, por cierto, se parece al ejemplo de ramificación si necesitas sondear más bits, y así sucesivamente. Si se debe sondear todo el teclado, es mejor acudir a la ROM y usar su subprograma, por supuesto, si no es muy importante el tiempo de ejecución. Bueno, si el tiempo es lo principal, entonces toma todos los datos de los puertos del teclado y escribe un controlador. Aquí, por cierto, los puertos del teclado:
bits 0.4 puerto
caps shift, z, x, c, v #fe 254
a, s, d, f, g #fd 253
q, w, e, r, t #fb 251
1, 2, 3, 4, 5 #f7 247
0, 9, 8, 7, 6 #ef 239
p, o, i, u, y #df 223
enter, l, k, j, h #bf 191
space, cambio de símbolo, m, n, b #7f 127
4. Si es posible, reemplaza las salvaguardas en la pila con el uso del conjunto alternativo de registros.
Ahora consideraremos el procedimiento para construir un punto en la pantalla, será un poco más complicado. Puede ser lento - 130-150 ciclos por punto, o rápido, pero más complicado, con tabla.
Por cierto, ¿qué es una tabla y con qué se come?
Una tabla - es un montón de bytes (o palabras) que contienen la información necesaria con acceso rápido. Esto lo digo, por supuesto, no intencionadamente, simplemente no puedo decirlo de otra manera. Aquí mira la 'punto rápida'. Necesita una pequeña instalación, es decir, antes de usarla se requiere ejecutar el procedimiento INSTALL (una vez), después de lo cual se puede usar el procedimiento de construcción de puntos tantas veces como se desee. El procedimiento INSTALL crea la tabla. Con el uso de la tabla, no es necesario calcular nada, y es precisamente el cálculo lo que consume la mayor parte del tiempo.
INSTALL ; procedimiento de instalación
LD HL,PLOTT ; dirección de la tabla
; en 1024 bytes para el punto, el byte menos significativo de la dirección debe ser #00! por ejemplo #F0 o #BC00
LD DE,#40 ; dirección de la pantalla
LD B,E
LD C,#80 ;*
LD HX,4
LOOP3 LD LX,8
LOOP2 LD A,8
LOOP1 LD (HL),E
INC H
LD (HL),D
INC H
LD (HL),B
INC H
LD (HL),C
RRC C
DEC H
DEC H
DEC H
INC HL
INC D
DEC A
JR NZ,LOOP1
INC B
LD A,B
AND 31
LD B,A
LD A,D
SUB 8
LD D,A
LD A,E
ADD A,#20
LD E,A
DEC LX
JR NZ,LOOP2
LD A,D
ADD A,8
LD D,A
DEC HX
JR NZ,LOOP3
RET
PLOT ; procedimiento de construcción de punto
LD L,C
LD H,PLOTT/256
LD A,(HL)
INC H
LD D,(HL)
INC H
LD L,C
ADD A,(HL)
LD E,A
INC H
LD A,(DE)
OR (HL)
; OR (HL) se puede reemplazar por XOR (HL) para superposición según el principio XOR, o por AND (HL) para borrar puntos, pero en ese caso ya hay que cambiar el registro C en la entrada del procedimiento INSTALL de #80 a #7F
LD (DE),A
RET
Como se puede ver en el procedimiento PLOT, casi no calcula nada, en la entrada tiene las coordenadas del punto (en B 0.191 en C 0.255) y el procedimiento, dependiendo de los datos de entrada, toma los bytes necesarios de la tabla. Intenta averiguar de qué está compuesta la tabla, sin duda te será útil.
Se puede llevar una lista de tales o similares procedimientos bastante larga, comienza a averiguar por ti mismo. Lo que necesitas del procedimiento, cómo hacerlo más rápido, etc. Y yo te proporcionaré la biblioteca matemática de nuestro grupo. Sin duda, te ayudará en gran medida. Así que adelante. Y si necesitas saber algo más detallado, escríbeme y trataré de responder todas tus preguntas.
(C) Copyright by Angel 2 CÓDIGO PRINCIPAL
Lista de procedimientos:
1. DIV - división
ENTRADA : HL
Contenido de la publicación: ZX Format #07
- De los Autores
Actualización sobre SMUC, problemas de distribución y planes para futuras ediciones de ZX Format. Los autores abordan la información obsoleta de SMUC y problemas de distribución de ZF-6. El contenido próximo incluye descripciones de juegos y nuevos proyectos.
- Аторы журнала
Información de contacto y detalles del equipo editorial para ZX-Format No.7. Proporciona direcciones postales y electrónicas, así como números de teléfono de contacto. Información sobre la disponibilidad de su sitio web e instrucciones específicas de contacto.
- Содержание номера
El artículo ofrece una visión general de los lanzamientos de software destacados en el mercado de San Petersburgo para el otoño. También incluye descripciones detalladas de juegos, consejos de programación y proyectos de hardware. Entrevistas, cuentos filosóficos y cartas de lectores enriquecen la edición.
- Игрушки - Welcome
Un resumen de novedades de software para ZX Spectrum, incluyendo juegos como 'Los Angeles Drugs Bust' y 'Jungle Warfare'. Cada descripción de juego proporciona información sobre gráficos, jugabilidad y características. Se cubren diversos géneros desde acción hasta estrategia, mostrando la diversidad de ofertas de software.
- Игрушки - Алешкин А.В.
El artículo describe el juego 'TAI-PAN' como un juego arcade-económico ambientado en el Este del siglo XIX, centrándose en el comercio y la supervivencia entre piratas y peligros. Detalla la mecánica del juego, como el comercio de bienes, la gestión de finanzas y la navegación en mares con diferentes barcos. A pesar de su intrigante trama e interfaz, el juego no logró mucha popularidad en Rusia.
- Игрушки - Soft
Una narración caprichosa en un mundo fantástico donde los colores conversan con el Último, un personaje que relata historias de antiguos humanos, programadores y un pasado misterioso. La historia explora temas de lenguaje, traducción y la creación de 'el Último' entre seres fantásticos como hipopótamos voladores y jirafas marinas. Sirve como una narrativa ficticia con elementos humorísticos, mezclando ciencia ficción con sátira.
- Игрушки - Alex ASP
Se explora una parodia de 'El Señor de los Anillos' de Tolkien llamada 'Bored of the Rings' por Delta 4. El texto hace referencia a adaptaciones, aventuras humorísticas de personajes como Fordo y Bimbo y diferentes versiones de Delta 4 a lo largo de los años. Se mencionan precuelas anticipadas y extractos de correspondencia con Fergus McNeill de Delta 4.
- Игрушки - Гил-Гелад
El artículo ofrece una guía detallada sobre cómo navegar por la interfaz del 3D Construction Kit para ZX Spectrum. Explica las opciones del menú para la gestión de archivos, configuración del juego y condiciones dentro del juego. Además, cubre la creación de objetos, edición e implementación lógica dentro del programa.
- Программистам - Дмитрий Рудовский
El artículo concluye la descripción de los comandos BB y ofrece consejos sobre su uso. Detalla el uso del comando CLOCK para la gestión de tiempo y alarmas en ZX Spectrum. Además, explica el comando SORT para ordenar matrices e introduce nuevas funciones lógicas y matemáticas.
- Программистам - Angel
Introducción a la programación en ensamblador para principiantes, cubriendo conceptos básicos y comandos. Explicación detallada de registros y banderas del procesador, con ejemplos. Ofrece consejos prácticos para la transición de Basic a ensamblador.
- Программистам - GreenFort
Discusión sobre cálculos rápidos en ensamblador para tareas como gráficos vectoriales y astronomía. Describe procedimientos para división y multiplicación binaria, con ejemplos para diferentes tamaños de bytes. Destaca la adaptabilidad de estos métodos para aumentar la precisión.
- Программистам - TP, Stinger
Descripción técnica detallada del formato de archivo Mod para composición musical en ZX Spectrum, centrándose en la estructura y los desplazamientos de datos para título, instrumentos y patrones.
- Программистам - Research
El artículo describe las capacidades y limitaciones del programa Convert, centrado en su uso para convertir imágenes al formato BMC. Incluye detalles técnicos sobre las funciones del programa, como métodos de tramado, salida en formato de sprite y pantalla, y la eliminación de puntos superfluos. Además, se discute brevemente el código fuente de X-Color y sus posibles aplicaciones.
- Обзор
El artículo trata sobre la demo-party ENLiGHT'97 celebrada en San Petersburgo el 24 de agosto de 1997, con plataformas como Spectrum, Amiga y PC. El evento atrajo a alrededor de 1100 delegados, lo que provocó aglomeraciones e inconvenientes técnicos, lo que causó la cancelación del segundo día. A pesar de estos problemas, el evento fue en general agradable, y se espera que haya otro evento en 1998.
- Обзор
Reseña de la exposición VideoFAIR en Manezh con lo más destacado en equipos de video y audio. Amiga-service y diversas empresas presentaron sus avances tecnológicos en sistemas de edición de video y transmisión. Innovaciones notables incluyen pantallas 3D escaneadas con láser y soluciones de audio profesionales.
- Железо - Nemo
Discusión sobre la exportación de tecnología KAY para descentralizar la producción de Spectrum. Resalta beneficios y desafíos potenciales de la fabricación local. Enfatiza la garantía de calidad y los sistemas de soporte.
- Железо
El artículo describe el desarrollo de una nueva placa base Scorpion, centrándose en mejorar gráficos, velocidad y compatibilidad con periféricos modernos como teclados y ratones IBM. Presenta la placa GMX (Extensión de Memoria Gráfica), diseñada para actualizar los modelos existentes de Scorpion a las capacidades de la nueva placa base. La placa GMX ofrece mejoras significativas en memoria, gráficos y velocidad de procesamiento, manteniendo la compatibilidad con los estándares ZX Spectrum y Pentagon.
- Железо
El artículo ofrece una visión detallada de dos amplificadores de audio populares para usuarios de ZX Spectrum en San Petersburgo. Destaca las ventajas y especificaciones del amplificador de bajo voltaje de 2 X 2W y el amplificador para coche de 2 X 22W. El artículo también incluye una lista de precios e instrucciones de pedido a través de la empresa 'Nemo'.
- Примьера
El artículo describe las mejoras y características de la versión 1.1 de Turbo Assembler para ZX Spectrum. Destaca las diferencias con la versión 1.0, como correcciones de errores, cambios en el tamaño de la pantalla y características añadidas como editor de líneas y verificación de sintaxis. También detalla la asignación de memoria y proporciona una guía sobre el uso de las funciones del editor y del compilador.
- Примьера - STS
Descripción del editor Riff Tracker MOD para General Sound, sus características y funcionalidades. Proporciona instrucciones detalladas sobre el uso de la edición y gestión de muestras. Notas sobre las limitaciones de la versión actual y las mejoras esperadas.
- Примьера - Paul Atrides, Alex Noman
Presentación del Oberon Creative Pack, compuesto por ZX-WinWord y Sprite Cutter. ZX-WinWord es un editor de texto que combina texto y gráficos con funciones avanzadas. Sprite Cutter permite la creación y manipulación de sprites en varios formatos.
- Примьера
Presentación de la segunda versión demo del juego Headball por ZX-Masters, discutiendo sus características y mejoras desde la primera demo. El juego ofrece modo para dos jugadores, cuatro niveles, tres tipos de proyectiles, varias opciones y configuraciones de dificultad para el ordenador. La disponibilidad del modo Turbo y una mejor sincronización y animación lo hacen único entre otros juegos de Spectrum.
- Интервью - Ruster
Entrevista con Digital Reality sobre proyectos en curso como DOOM y Paradise Lost. Discusión de desafíos y progreso en el desarrollo de juegos. Vista previa de sus presentaciones para el evento ENLiGHT.
- Интервью - Ruster
Entrevista con miembros del recién formado grupo EXTREME. Trabajan en demos para plataformas Spectrum y Amiga y discuten sobre sus miembros y actividades. La entrevista también aborda el estado de la escena Amiga en Moscú.
- Интервью - Борис Прытков
Entrevista con entusiastas de Spectrum de Samara sobre sus logros y desafíos. Enfoque en la construcción de comunidad y publicación de la revista Oberon. Esfuerzos para establecer una red Spectrum y convertir el juego WALKER.
- Интервью - Борис Прытков
El artículo es una entrevista con miembros del grupo Flash inc. discutiendo sus proyectos para ZX Spectrum y PC, incluyendo un editor de música con una interfaz innovadora y un nuevo editor gráfico multicolor.
- Интервью - Михаил Акимов
Entrevista con el grupo Progress de Moscú, discutiendo su trabajo actual en demos de Spectrum, planes para futuros proyectos en Amiga y opiniones sobre la demoscene rusa.
- Интервью - Михаил Акимов
Entrevista con Felix sobre los cambios en el panorama tecnológico, el atractivo duradero de Amiga a pesar del dominio de PC, y su trabajo en 'Winnie the Pooh - 2' para Spectrum.
- Интервью - Ruster
Entrevista con Slash sobre el evento ENLiGHT, incluyendo problemas de patrocinio, comportamiento de los asistentes y la calidad de la música y demos. Discusión del estado actual de los mercados de Spectrum y Amiga. Comentarios sobre los rastreadores de música y el futuro del desarrollo de hardware.
- Интервью - Ruster
Entrevista con V. Mednonogov después de ENLiGHT'97, discutiendo impresiones del evento, el futuro del Spectrum y su proyecto actual 'Cuervo Negro'. Mednonogov comparte sus opiniones sobre nuevo hardware y desarrollo de software y la importancia del copyright. También discute sus planes para proyectos futuros y los desafíos enfrentados en el desarrollo de juegos.
- Здесь был ты
Una guía satírica para obtener poder e invisibilidad usando rituales mágicos y chicle Orbit.
- Здесь был ты - Saggitarius
Una novela contemplativa sobre el viaje existencial de un hombre tras encontrarse con un individuo misterioso que ofrece un dispositivo llamado Stop Crane. A través de recuerdos, el protagonista reflexiona sobre su vida, singularidad y su deseo de liberarse de las restricciones sociales. Finalmente, enfrenta el dilema moral de usar el Stop Crane para trascender el tiempo y la existencia.
- Почта - Eagle Soft
Crítica del software ZX-Spectrum, destacando las limitaciones de los programas actuales y recomendando la eliminación de herramientas obsoletas. Discusión sobre las limitaciones de los programas de ensamblado y la necesidad de ensambladores más eficientes como el M80. Evaluación de los editores de música y gráficos actuales, con un enfoque en la redundancia de ciertas aplicaciones.
- Почта
Discusión sobre consultas de lectores sobre la distribución y el contenido de ZX Format. Las respuestas incluyen detalles sobre la adquisición de ejemplares y conocimientos técnicos sobre el ordenador KAY-256. La revista también aborda críticas a su artículo sobre perspectivas de mercado.
- Почта
Este anuncio destaca la campaña de distribución de software de XL Design Inc., ofreciendo juegos como 'Plutonia' y próximos lanzamientos como 'Mortal Kombat'. Se promueven controladores de ratón con puntos de venta humorísticos y detalles de precios. La empresa LOGROS ofrece una amplia gama de software y periféricos, con opciones para compras locales y remotas.
- Разное - Александр Сысоев
El artículo trata sobre la creación de un juego de rol por el grupo OBERON, inspirado en 'Eye of Beholder'. Se describe la trama humorística del juego ambientada en una galaxia lejana y la batalla contra invasores en un planeta llamado Agima. El equipo invita a músicos, artistas, programadores y guionistas para colaborar.
- Разное - Viator
El artículo describe el desarrollo de un nuevo editor gráfico llamado STATE OF THE ART para ZX Spectrum, con el objetivo de mejorar los editores existentes como ART-STUDIO y ARTIST-2. El equipo AVALON, inspirado en los comentarios de la comunidad de artistas de SPECCY, incorpora características de editores en Amiga y PC, al mismo tiempo que aborda solicitudes específicas de los usuarios. Las características clave incluyen una interfaz amigable, un modo de aumento mejorado, manipulación avanzada de formas y ventanas, y rendimiento optimizado.
- Разное
Discusión sobre mejorar la calidad del consumidor de las computadoras Spectrum sin alterar sus especificaciones técnicas. Se sugieren mejorar el soporte existente, desarrollar una ideología de plataforma y cambios estructurales. El artículo también aborda el potencial de los libros electrónicos y su viabilidad comercial.
- Amiga Club - Максим Петров
El artículo describe la admiración del autor por el ordenador Amiga, destacando sus méritos estéticos y técnicos en comparación con otras plataformas. Explora las experiencias del autor en programación en Amiga, destacando su eficiencia y las impresionantes capacidades de sus nuevas actualizaciones de hardware. El artículo concluye reflexionando sobre la comunidad única y la pasión de los entusiastas de Amiga.