Как стать автором
Обновить

#00 — И целого байта мало… | Приглашение на Revision Online 2020

Время на прочтение3 мин
Количество просмотров2.4K
Дамы, господа, как бодрость духа?

От лица =RMDA= приглашаю вас на Revision Online 2020. Как вы отлично знаете, коронавирус лютует, отменены не только крупные мировые конференции, но даже крошечные мероприятия вокруг демосцены по всей Европе (Forever, Speccy.pl и многие другие). Ребята из команды Revision две недели боролись с муниципалитетом микроскопического городка в Германии, но не смогли отстоять право на проведение демопати. Они решили сделать мероприятие онлайн.

С 10 по 14 апреля, 72 часа непрерывного онлайн-потока по всем платформам и аспектам демосцены ждут вас! Все тут: 2020.revision-party.net

Мы активно участвуем в организации Revision Online 2020 и уже выпустили первую работу по теме: Revitro, 256 bytes intro, PC, x86

Это интро на 256 байт для PC которое использует для вывода звука как спикер, так и midi-интерфейс. Посмотрите сами:



Вот исходный код:

TEXT_WIDTH = 15
TEXT_LINES = 6

FAST_APPEAR = 0                 ; for debug

        org 100h

        ; ax = 0, bx = 0, cx = 0FFh, si = 100h, bp = 9??h, di = sp, word [sp] = 0

        db 4,5,2,9,0E4h,5,2,0,4,5,2,9,4,0C5h,2,7        ; notes: A A# G d A+g A# G ~ A A# G d A A#+f G c
        ; al = undefined, other are unchanged

        ; Video mode, font, text, palette
        mov al,13h
        int 10h                 ; 320x200, 256 color

        mov ax,1122h
        int 10h                 ; set font size 8x14

        xchg ax,bp
        mov dx,text
        int 21h                 ; output text on top left line

        push 0A000h
        pop ds

        mov dx,3C9h
        xor al,al
@@:     out dx,al               ; red = gradient
        out dx,al               ; green = gradient
        outsb                   ; blue = 0
        cmp cl,0C1h
        sbb al,0                ; black for first 64 colors, gradient for next 192 colors
        loop @B

        ; Scale text
next:
        salc
        mov di,bx
        shr di,1
        jc @F
        mov al,[di - (((7-TEXT_LINES)*7+1)*320 + (20-TEXT_WIDTH)*4)]
@@:     mov [bx],al
        dec bx
        jnz next

        ; Text appearance
appear:
        shl byte [bx],4
;        in al,60h
;        dec ax
;        jz exit
if ~ defined FAST_APPEAR | ~ FAST_APPEAR
        test bl,dh
        jnz @F
        mov ah,86h
        int 15h
end if
;@@:     mov al,bh
;        out 61h,al              ; more lite sounds of horror :)
@@:     imul bx,-103            ; interesting sounds on: 125;113;73;53;25;-27;-39;-55;-75;-103;-107;-123
        inc bx
        mov al,bh
        out 61h,al              ; sounds of horror (use this block or above)
        jnz appear

        ; Flashlight
flashlight:
pixel:
        mov ax,0CCCDh
        mul di                  ; dl = X (0..255), dh = Y
        xchg ax,dx
        sub al,ch
@@:     neg al
        jl @B                   ; dl = abs(dl)
        cmp al,48
        jbe @F
        mov al,48
@@:     and byte [di],0C0h
        or [di],al
        inc di
        jnz pixel

        ; Music
        mov dx,330h
        add ch,dh
        test cl,dh
        jnz skip

        and si,10Fh
        mov bl,[es:si]
        inc si
@@:     test bl,bl
        jz skip
        mov ax,3F90h            ; note on command (90h to 330h) and enter UART mode (3Fh to 331h)
        out dx,ax
        mov al,bl
        and al,0Fh
        add al,65               ; note
        out dx,al
        mov al,7Fh              ; volume (max)
        out dx,al
        shr bl,4                ; high nibble
        jmp @B
skip:
        inc cx

        hlt                     ; delay

        ; Check Esc key
        in al,60h
        dec al
        jnz flashlight

exit:
        ret

text    db 'Revision Online',13,10
        db '      ',196,205,196,13,10
        db '  HEAR & OBEY',13,10
        db 'HTTPS://RMDA.SU',13,10
        db 'come, taste the',13,10
        db 'REAL demoscene!'
        db '$'

Если вы понимаете этот культурный код, если вам не требуется перевода на русский язык термина demoscene — мы ждем вас!

Вы знаете как с нами связаться!

image

RMDA 2020
русские идут...

UPD: Наша новая работа. Она пока не зарелижена честь по чести, мы ждем видео. Публикуем сам исходник, если захотите = сможете сами ее собрать и посмотреть. Это PC 128 bytes intro, приглашение на Chaos Constructions 2020 в Питере (август):

; CC2k2o (c) IlII / RMDA / 2020
; FASM, recommended to run via DOSBox

WIDTH   =       21
HEIGHT  =       21
BLOCK   =       6

        org 100h

        ; ax=bx=0, cx=0FFh, si=100h, df=0

        ; Init

        mov dx,3C9h             ; this opcode will be also palette :)

        mov al,13h
        int 10h                 ; 320x200, 256 colors

        rep outsb               ; r,g,b = 58,9,3 for color #0

        les bp,[bx]             ; es = 9FFFh (DOSBox; different systems may contain 0A000h, 9F80h and other)

        ; Draw QR code
drawqr:
        mov si,qr
        mov di,(200-HEIGHT*BLOCK)/2*320 + (320-WIDTH*BLOCK)/2 + 10h ; top left corver address (10h is compensation of inaccurate video segment value)
        mov dl,1
        mov cl,HEIGHT
continue:
        mov ch,WIDTH
next:
        out 61h,al              ; sound of crackle

        ror dl,1                ; set carry flag 1 time in 8 rotations
        jnc pixel
        lodsb
        xchg bp,ax
pixel:
        shr bp,1                ; extract next bit
        sbb ax,ax               ; ax = 0 or 0FFFFh
        cmp ch,dh
        jne @F
        mov al,0D0h             ; noise effect color
@@:
        mov bl,BLOCK
@@:
repeat BLOCK / 2
        stosw
end repeat
repeat BLOCK mod 2
        stosb
end repeat
        add di,320-BLOCK        ; first move vertically
        dec bx
        jnz @B

        dec ch
        jnz next

        sub di,(320*HEIGHT-1)*BLOCK ; then move horizontally
        loop continue

        ; Final

        imul dx,77              ; random number generator
;        shr dh,1                ; more often noise

        hlt                     ; delay

        in al,60h
        dec ax
        jnz drawqr              ; loop if no Esc key is pressed

        ret

        ; Data

qr      db 127,195,63,232,9,118,109,221,174,171,219,165,116,131,172,224
        db 95,245,7,96,0,93,45,222,67,109,177,101,116,156,175,143
        db 29,227,1,90,237,31,4,15,114,40,93,243,169,235,19,119
        db 13,214,32,71,240,119,145;,0


cc2020inv, 128 bytes intro, PC, x86



И в качестве небольшого бонуса, наша работа для Apple ii

dae353b



---EOF---

#FF — И целого байта мало… | Пилот)
#00 — ИЦБМ… | Приглашение на Revision Online 2020
#01 — ИЦБМ… | Какими бывают intro?
#02 — ИЦБМ… | The Cross of Changes
#03 — ИЦБМ… | 2B or not 2B
#04 — ИЦБМ… | Берем БК за рога
#05 — ИЦБМ… | Анимэ
#06 — ИЦБМ… | Метеоризмы
#07 — ИЦБМ… | Revision Online
#08 — ИЦБМ… | Голосуем на Revision

Развлекательный канал деда в Телеграм: teleg.run/bornded

Рядом с каналом есть чат. В нем можно попробовать поднять вопросы за демосцену, ассемблер, пиксель-арт, трекерную музыку и другие аспекты процессы. Вам могут ответить либо отправят в другие, более тематические чаты.

ТАК ПОБЕЖДАЛИ — ТАК ПОБЕДИМ!
Теги:
Хабы:
Всего голосов 16: ↑14 и ↓2+12
Комментарии6

Публикации