# 04 - E um byte inteiro não é suficiente ... | Tome BK pelos chifres

Semana passada = R MDA = lançou seu primeiro lançamento para o lendário computador soviético , Electronics BK-0011M, e quero lhe contar alguns detalhes. Aqui está o trabalho em si: Presente 2020

imagem

Este presente é um tipo de introdução de saudação, geralmente dedicada a aniversários. Aconteceu que, quando o trabalho foi concluído, duas figuras proeminentes no demosceno russo tiveram um aniversário síncrono, e decidimos reformatar esse lançamento um pouco para a GIFT, para que todos ficassem satisfeitos. Caso contrário, temos diante de nós a introdução / demonstração usual, de forma alguma associada a restrições de tamanho.

Programar no BC não é mais difícil e fácil do que em qualquer outro dispositivo. Você pega ferramentas de desenvolvimento, manuais, bibliotecas de códigos prontas, reúne tudo e acrescenta uma ideia a ele. Existem muitas ferramentas de desenvolvimento para o BC, há ainda mais informações de referência. De fato, tudo o que foi feito no BC até 1997 é uma camada contínua de informações de referência. Existe até um emulador muito decente que continua a ser atualizado periodicamente, embora seja estritamente no Windows.

Qual é o problema? Qual é o desafio tecnológico? Especialmente se escrevermos o HELLO WORLD banal para uma nova plataforma?


Na demoscene, é habitual fornecer versões com um arquivo .NFO , onde são descritas, resumidamente, mas com capacidade, todos os detalhes do que está acontecendo. De fato, um artigo sobre Habr não é necessário se você puder ler .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 dessa série de artigos sobre Habré, é claro que buscamos objetivos educacionais . Falamos sobre o demosceno, mas não estabelecemos metas para ensinar como programar no assembler. O trabalho acima é apenas três slides mudando para música. É muito, muito simples, mas vamos dar uma olhada no 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! Não tente compilar o código do artigo! É especialmente reduzido e formatado para facilitar a leitura em Habré. Se você deseja coletar o trabalho você mesmo - use o arquivo original em Pouet e a pasta / source . Vale a pena reconhecê-lo imediatamente - está longe de ser uma honra, mas para a primeira experiência em um computador anteriormente desconhecido, tudo é bastante decente. Talvez após a Revisão Online 2020 , faremos uma versão final mais avançada deste presente. Talvez…

Que conclusões tiramos do projeto no BC? Por um lado, está tudo bem, existem ferramentas de desenvolvimento, há documentação. O fato de o BC ser uma arquitetura terrível, já sabíamos. No entanto, ninguém esperava que o ZX e o PC enfrentassem a situação de TOTAL LACK dos procedimentos e bibliotecas mais básicos. Por exemplo, estávamos totalmente despreparados para o fato de que, para tocar a faixa de chiptune (sirene), escrita no Vortex Tracker , precisamos da nossa ajuda.Manwe_sands. E não é que no AY você precise enviar valores invertidos para as portas do chip de som AY, isso é metade do problema. Por 20 anos, as pessoas simplesmente não tinham um tocador de PT3 banal, embora nos anos 90 uma grande quantidade de música do ZX Spectrum tenha sido transferida para o BC com apenas alguns cliques do mouse. Assim, durante 20 anos de inatividade, a cena do lendário computador soviético perdeu completamente sua espiritualidade.

Nada, = RMDA = ajuda!

Quanto ao resto, BC é divertido e provocador! Sinta-se livre para pegar o BC pelos chifres! Obrigado.

--- EOF ---

#FF - E um byte inteiro não é suficiente ... | Piloto)
# 00 - ICBM ... | Convite para Revisão Online 2020
# 01 - IBMP ... | O que são introduções?
# 02 - O MBM ... | A cruz das mudanças
# 03 - IBMP ... | 2B ou não 2B
# 04 - IBMP ... | Tome BK pelos chifres
# 05 - O MBM ... | Anime
# 06 - IBMP ... | Meteorismos
# 07 - O MBM ... | Revisão Online

Canal de Entretenimento Telegrama do Avô:teleg.run/bornded

Há um bate-papo ao lado do canal. Nele, você pode tentar levantar questões para o demosceno, montador, pixel art, música do rastreador e outros aspectos dos processos. Você pode ser respondido ou enviado para outros chats mais temáticos.

Então eles venceram - então nós vencemos!

All Articles