# 04 - Y un byte completo no es suficiente ... | Toma a BK por los cuernos

La semana pasada = R MDA = lanzó su primer lanzamiento para la legendaria computadora soviética , Electronics BK-0011M, y quiero contarles algunos detalles. Aquí está el trabajo en sí: Regalo 2020

imagen

Este regalo es un tipo de introducción de saludo, generalmente dedicado a los cumpleaños. Dio la casualidad de que para cuando se completó el trabajo, dos figuras prominentes en el demoscene ruso tuvieron un cumpleaños sincrónico, y decidimos reformatear este lanzamiento un poco a GIFT, para que todos estuvieran satisfechos. De lo contrario, tenemos ante nosotros la introducción / demostración habitual, de ninguna manera asociada con restricciones de tamaño.

La programación en el BC no es más difícil ni más fácil que en cualquier otro dispositivo. Toma herramientas de desarrollo, manuales, bibliotecas de códigos listas para usar, reúne todo y le agrega una idea. Hay muchas herramientas de desarrollo para el BC, hay aún más información de referencia. De hecho, todo lo que se hizo en el BC hasta 1997 es una capa continua de información de referencia. Incluso hay un emulador muy decente que continúa actualizándose periódicamente, aunque está estrictamente bajo Windows.

¿Cuál es el problema? ¿Cuál es el desafío tecnológico? ¿Especialmente si escribimos banal HELLO WORLD para una nueva plataforma?


En el demoscene, se acostumbra suministrar versiones con un archivo .NFO , donde se describen, breve pero ampliamente, todos los detalles de lo que está sucediendo. De hecho, un artículo sobre Habr no es necesario si puedes leer .NFO:

         ________    ___  ____    _______    ________
       __\       \ _/   \/    \ _/       \ __\       \__
       \__   __   \\     \     \\   __    \\__   __   _/
        /    |/ __/           _/_   |/   _/_/    |/  /_
        \    /    \_           /    /      \          \
         \____\___//___\  /___/____________/\_____\___/
                        \/   redefine the future!
gift 2020
demo, Elektronika BK0011M + AY-8910

code - siniy
 alarm - okin
  farted by ded

YouTube: sorry, no YouTube, BK is too hard even for RMDA

HowTO:

1) Download emulator here http://gid.pdp-11.ru
2) Install it and find installation directory
3) Replace /image/MKDOS513.IMG with file from our release
4) Launch emulator
5) In NC-style enviroment navigate up, change dir/disk
6) Find gft2o2o.com file and press Enter
7) AY-8910 must be enabled
8) Assembler+devtools also available at http://gid.pdp-11.ru

BK - shit na veka!

RMDA 2020 @ https://rmda.su

02/04/2020

russkie idut...

Como parte de esta serie de artículos sobre Habré, por supuesto perseguimos objetivos educativos . Le contamos sobre el demoscene, pero no establecemos objetivos para enseñarle cómo programar en ensamblador. El trabajo anterior es solo tres diapositivas que cambian a música. Es muy, muy simple, pero veamos el código:

	CALL CLS
	MOV #msg3,R5
	MOV #40000+4.+0x1B00,R0
	CALL PRT

 MOV #8.,R0 ;  
 CLR R1
L1: SOB R1,L1
 SOB R0,L1
 MOV #32768.,R0
 MOV R0,COL

;setup timer
START:
 MOV #TICK,@#100
 MOV #2,@#102
 CLR @#177662 ; , 0 

SSH:
;load picture
 MOV #File_002,R1
 EMT 36

	MOV #msg1,R5
	MOV #40000+27.,R0
	ADD #0x3600,R0
	CALL PRT

;play song
	MOV #1,R0
	MOV R0,PSGPA
	MOV #SONG+16.,R0
	MOV R0,PSGPO
	CALL PL
	CALL CLS

 MOV #File_001,R1
 EMT 36

	MOV #msg2,R5
	MOV #40000+16.,R0
	ADD #0x3600,R0
	CALL PRT

;play song
	MOV #1,R0
	MOV R0,PSGPA
	MOV #SONG+16.,R0
	MOV R0,PSGPO
	CALL PL
	CALL CLS
	JMP SSH
CLS:
	MOV #40000,R0
CL:
	CLR (R0)+
	TST R0
	BPL CL
	RET
;**************************************************************************************
;play song
PL: WAIT
	MOV PSGPA,R0
	TST R0
	BEQ PSGA
	DEC R0
	MOV R0,PSGPA
	BR PL
PSGA:
	MOV PSGPO,R0
dumpreg:
	MOVB (R0)+,R1
	BIC #0xFF00,R1
	CMP #0xFF,R1
	BEQ stoplay
	CMP #0xFE,R1
	BNE nogetwait
	MOVB (R0)+,R2
	BIC #0xFF00,R2
	ASL R2
	ASL R2
	MOV R2,PSGPA
	BR stoplay
nogetwait:
	CMP #0xFD,R1
	BEQ stoplay2
	COMB R1
	MOV R1,@#177714
	MOVB (R0)+,R1
	BIC #0xFF00,R1
	COMB R1
	MOVB R1,@#177714
    BR dumpreg
stoplay2:
	RET ;MOV #SONG+16.,R0
stoplay:
	MOV R0,PSGPO
	JMP PL

;**************************************************************************************
TICK:
RTI
PSGPA: .WORD 1

PSGPO: .WORD SONG+16.
SONG:
 .byte 0x50,0x53,0x47,0x1A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
----   ,     
 .byte 0x0F,0x09,0x10,0x0A,0x0F,0x0B,0x46,0x0D,0x0C,0xFE,0x01,0x00,0xA1,0x04,0x16,0x0B
 .byte 0xFD ; end of song
.EVEN
;--------------------------------------------------------------
COL: .WORD 49152.;32768.
PRT:

tout:
	MOVB (R5)+,R3
	SUB #32.,R3
	BIC #0xFF00,R3
;*10
	ADD R3,R3;*2
	MOV R3,R1
	ADD R3,R3;*4
	ADD R3,R3;*8
	ADD R3,R1;*10
	ADD #112276,R1
	
	MOV R0,-(SP)
	MOVB #10.,4(SP)
cf:
	MOVB (R1)+,R2

;make for standart

	MOVB #8.,6(R6)
	MOV #0,R3
m2:
	ASR R2
	BCC m3
	BIS @#COL,R3
m3:
	CLC
	ROR R3
	ROR R3

	DECB 6(R6)
	BNE m2

	MOV R3,(R0);+
	ADD #64.,R0
	DECB 4(SP)
	BNE cf
	
	MOV (SP)+,R0
	INC R0
	INC R0
	TSTB (R5)
	BNE tout
	RET
;--------------------------------------------------------------
msg1: .ascii /2 may 1945/
 .byte 0
msg2: .ascii /Russkie idut.../
	.byte 0,0
msg3: .ascii /Happy birthday Tim & Random!/
	.byte 0,0

File_001:
 .WORD 3,0,0 ; 1= ,  ,  (0!  )
 .ASCII  "PO1             " ; 16 
 .BYTE 5,6   ; 40-100, 100-140 ( WORD -1.,   )
 .BLKB 20.   ;   

File_002:
 .WORD 3,0,0 ; 1= ,  ,  (0!  )
 .ASCII  "PO2             " ; 16 
 .BYTE 5,6   ; 40-100, 100-140 ( WORD -1.,   )
 .BLKB 20.   ;   

 .EVEN
 .END

¡IMPORTANTE! ¡No intentes compilar el código del artículo! Está especialmente reducido y formateado para una legibilidad normal en Habré. Si desea recopilar el trabajo usted mismo, use el archivo original en Pouet y la carpeta / source . Vale la pena reconocerlo de inmediato: está lejos de ser un honor, pero para la primera experiencia en una computadora previamente desconocida, todo es bastante decente. Quizás después de Revision Online 2020 hagamos una versión final más avanzada de este Regalo. Tal vez…

¿Qué conclusiones sacamos del proyecto en BC? Por un lado, todo está bien, hay herramientas de desarrollo, hay documentación. El hecho de que BC es una arquitectura terrible, ya lo sabíamos. Sin embargo, nadie esperaba que ZX y PC enfrentaran la situación de TOTAL FALTA de los procedimientos y bibliotecas más básicos. Por ejemplo, no estábamos preparados para el hecho de que para reproducir la pista de melodía (sirena) terminada, escrita en Vortex Tracker , necesitamos la ayuda de nosotros mismos.Manwe_sands. Y no es que en el AY necesite enviar valores invertidos a los puertos del chip de sonido AY, esto es la mitad del problema. Durante 20 años, la gente simplemente no tenía un reproductor PT3 banal, aunque en los años 90 se transfirió una gran cantidad de música del ZX Spectrum al BC con unos pocos clics del mouse. Entonces, durante 20 años de inactividad, la escena de la legendaria computadora soviética perdió por completo su espiritualidad.

Nada, = RMDA = ayuda!

Por lo demás, BC es divertido y provocativo. ¡Siéntete libre de tomar el BC por los cuernos! Gracias.

--- EOF ---

#FF - Y un byte completo no es suficiente ... | Piloto)
# 00 - ICBM ... | Invitación a revisión en línea 2020
# 01 - IBMP ... | ¿Qué son las intro?
# 02 - El MBM ... | La Cruz de los Cambios
# 03 - IBMP ... | 2B o no 2B
# 04 - IBMP ... | Toma a BK por los cuernos
# 05 - El MBM ... | Anime
# 06 - IBMP ... | Meteorismos
# 07 - El MBM ... | Revisión

del canal de entretenimiento Telegram del abuelo en línea :teleg.run/bornded

Hay un chat al lado del canal. En él, puede intentar plantear preguntas para el demoscene, ensamblador, pixel art, música de seguimiento y otros aspectos de los procesos. Puede ser respondido o enviado a otros chats más temáticos.

Entonces ganaron, ¡así ganamos nosotros!

All Articles