# 00 - And a whole byte is not enough ... | Invitation to Revision Online 2020

Ladies and gentlemen, how pep?

On behalf of = R MDA = I invite you to Revision Online 2020 . As you well know, the coronavirus is bustling, not only large world conferences have been canceled, but even tiny events around the demoscene throughout Europe (Forever, Speccy.pl and many others). The guys from the Revision team fought for two weeks with the municipality of the microscopic town in Germany, but could not defend the right to hold a demopat. They decided to make the event online.

From April 10-14, 72 hours of continuous online flow across all platforms and aspects of the demo scene are waiting for you! Everyone is here:2020.revision-party.net

We are actively involved in the organization ofRevision Online 2020and have already released the first work on the topic: Revitro , 256 bytes intro, PC, x86

This is a 256 byte intro for a PC that uses both a speaker and a midi interface to output sound. See for yourself:



Here is the source code:

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 '$'

If you understand this cultural code, if you do not need to translate the term demoscene into Russian, we are waiting for you!

You know how to contact us! RMDA 2020 Russians are coming ... UPD: Our new job. She has not yet been honored with honor, we are waiting for the video. We publish the source itself, if you want = you can assemble it and see for yourself. This is PC 128 bytes intro, an invitation to Chaos Constructions 2020 in St. Petersburg (August):

image






; 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



And as a small bonus, our work is for Apple ii

dae353b



--- EOF ---

#FF - And a whole byte is not enough ... | Pilot)
# 00 - ICBM ... | Invitation to Revision Online 2020
# 01 - IBMP ... | What are intro?
# 02 - The MBM ... | The Cross of Changes
# 03 - IBMP ... | 2B or not 2B
# 04 - IBMP ... | We take BC by the horns
# 05 - ICBM ... | Anime
# 06 - IBMP ... | Meteorisms
# 07 - The MBM ... | Revision Online
# 08 - IBMP ... | We vote on the Revision

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

There is a chat next to the channel. In it, you can try to raise questions for the demoscene, assembler, pixel art, tracker music and other aspects of the processes. You can be answered or sent to other, more thematic chats.

So they won - so we win!

All Articles