# 04 - Et un octet entier ne suffit pas ... | Prenez BK par les cornes

La semaine dernière = R MDA = a publié sa première version pour le légendaire ordinateur soviétique , Electronics BK-0011M, et je veux vous dire quelques détails. Voici l'œuvre elle-même: Gift 2020

image

Ce cadeau est un type d'intro de salutation, généralement dédié aux anniversaires. Il s'est avéré qu'au moment où le travail était terminé, deux personnalités de la démoscène russe avaient un anniversaire synchrone, et nous avons décidé de reformater un peu cette version en GIFT, afin que tout le monde soit satisfait. Sinon, nous avons devant nous l'intro / démo habituelle, en aucun cas associée à des restrictions de taille.

La programmation sur le BC n'est pas plus difficile et plus facile que sur n'importe quel autre appareil. Vous prenez des outils de développement, des manuels, des bibliothèques de code prêtes à l'emploi, tout assembler et y ajouter une idée. Il existe de nombreux outils de développement pour la Colombie-Britannique, il y a encore plus d'informations de référence. En fait, tout ce qui a été fait sur la Colombie-Britannique jusqu'en 1997 est une couche continue d'informations de référence. Il existe même un émulateur très décent qui continue d'être mis à jour périodiquement, bien qu'il soit strictement sous Windows.

Quel est le problème? Quel est le défi technologique? Surtout si on écrit banal HELLO WORLD pour une nouvelle plateforme?


À la demoscene, il est de coutume de fournir aux versions un fichier .NFO , où elles sont décrites, brièvement, mais de manière détaillée, tous les détails de ce qui se passe. En fait, un article sur Habr n'est pas nécessaire si vous pouvez lire .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...

Dans le cadre de cette série d'articles sur Habré, nous poursuivons bien sûr des objectifs pédagogiques . Nous vous parlons de la demoscene, mais nous ne fixons pas d'objectifs pour vous apprendre à programmer en assembleur. Le travail ci-dessus n'est que trois diapositives changeant en musique. C'est très, très simple, mais regardons le code:

	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

IMPORTANT! N'essayez pas de compiler le code de l'article! Il est spécialement réduit et formaté pour une lisibilité normale sur Habré. Si vous souhaitez collecter le travail vous-même - utilisez l'archive d'origine sur Pouet et le dossier / source . Cela vaut la peine d'être reconnu tout de suite - c'est loin d'être un honneur, mais pour la première expérience sur un ordinateur inconnu, tout est assez décent. Peut-être qu'après la révision en ligne 2020, nous ferons une version finale plus avancée de ce cadeau. Peut être…

Quelles conclusions avons-nous tirées du projet de la Colombie-Britannique? D'une part, tout va bien, il y a des outils de développement, il y a de la documentation. Le fait que la Colombie-Britannique soit une architecture terrible, nous le savions déjà. Cependant, personne ne s'attendait après ZX et PC à faire face à la situation de TOTAL LACK des procédures et bibliothèques les plus élémentaires. Par exemple, nous n'étions absolument pas préparés au fait que pour jouer la piste de chiptune (sirène) terminée, écrite dans Vortex Tracker , nous avons besoin de l'aide de nous-mêmesManwe_sands. Et ce n'est pas que dans l'AY vous devez envoyer des valeurs inversées aux ports de la puce audio AY, c'est la moitié du problème. Pendant 20 ans, les gens n'avaient tout simplement pas de banal lecteur PT3, bien que dans les années 90 une énorme quantité de musique du ZX Spectrum ait été transférée à la Colombie-Britannique en quelques clics de souris. Ainsi, pendant 20 ans d'inactivité, la scène du légendaire ordinateur soviétique a complètement perdu sa spiritualité.

Rien, = RMDA = aide!

Pour le reste, la Colombie-Britannique est amusante et provocante! N'hésitez pas à prendre le BC par les cornes! Remercier.

--- EOF ---

#FF - Et un octet entier ne suffit pas ... | Pilote)
# 00 - ICBM ... | Invitation à la révision en ligne 2020
# 01 - IBMP ... | Qu'est-ce que l'intro?
# 02 - Le MBM ... | La croix des changements
# 03 - IBMP ... | 2B ou non 2B
# 04 - IBMP ... | Prenez BK par les cornes
# 05 - Le MBM ... | Anime
# 06 - IBMP ... | Météorismes
# 07 - Le MBM ... | Revision Online

Grandfather's Telegram Entertainment Channel:teleg.run/bornded

Il y a un chat à côté de la chaîne. Dans celui-ci, vous pouvez essayer de soulever des questions pour la demoscene, l'assembleur, le pixel art, la musique tracker et d'autres aspects des processus. Vous pouvez recevoir une réponse ou être envoyé vers d'autres chats plus thématiques.

Alors ils ont gagné - alors nous gagnons!

All Articles