home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Equalizer BBS
/
equalizer-bbs-collection_2004.zip
/
equalizer-bbs-collection
/
DEMOSCENE-STUFF
/
XMAS_ZRO.ZIP
/
XMAS.ASM
< prev
Wrap
Assembly Source File
|
1996-12-01
|
12KB
|
294 lines
; ▄▄ ▄██▄
; ▀▀██▌ ██ ▄█ ▄▄███▄▄ ▀██▀
; ▄▄███▄▄ ███ ▐█▌ ▐█▌ ██▀ ▀▀█ ▄▄▄ ▄█▀ ▄▄█▌ █▄ ▄▄▄ ▄███▄▄
; ▄█▀▀ ▀▀█▄ ▐██▌ ▐██ ██ ██▄ ▀▀ ██ ▐█▌ ▀████ ███▀▀███▀ ▀██▌
; ██ ▄▄▄███▀ ▐███ ▀███▄▄▄▄██ ▀▀██▄▄ ▐██ ██ ███▐██ ▐█▌ ▐██
;▐█████▀▀▀ ▄ ███▌ ▄ ▀▀▀▀▀██ ▄ ▀▀█▄ ██▌ ██ ▐██▐█▌ ██ ███
; ██ ▄▄██▌ ████ ▐██▄▄ ▐█▌▐██▄▄ ▐█▌▐██▌ ▐█▌ ██▌▐█▌ ▐█▌ ███▌
; ▀██▄▄▄█████▀▀ ▐███▌▀▀█████▄██▀ ▀▀█████▄██▀ ███ ▀██▄▄▄██▀ ▀█▄ ▀ ████
; ▀▀▀▀ █████▄ ▀▀▀ ▀▀▀ ▐███ ▀▀▀ [genom] ████▌
; ▀▀▀▀ ▀▀▀██▄ ▀▀███
; - XMAS96 intro - ............coded by 3x0dus of 3lysium ▀
; ─────────────────────────────────────────────────────────────
; here's the source of our little (?) xmas intro. whole intro provides
; write routines, voxel-landscape based strange background effect and
; a simple snow routine. also you can use this source as an example
; how to use crystal player...
; hope you gonna use this source only to learn how to code, because
; ripping the code is very, very lame. btw, i know i should have to
; code it better, but i had only one night to do it...
; the source is undocumented, sorry.
;
; if you want to chat about coding or anything, swap some stuff, etc :
; Bartek Kielczewski
; Maleckiego 7/13
; 1o-293 Olsztyn, Poland
;
; exodus.els
;─────────────────────────────> Font <───────────────────────
Text_x equ 15
Text_y equ 35
Font_width equ 16
Font_height equ 19
;─────────────────────────────> Landscape <──────────────────
Clip_t equ 0
Clip_b equ 180
Horizon equ 90
;─────────────────────────────> General <────────────────────
Stars_nbr equ 6*35
Xres equ 320
Yres equ 200
;─────────────────────────────> Crystal Player 2.6o <────────
extrn detectsnd : far
extrn mloadmod : far
extrn unloadmod : far
extrn setmod : far
extrn makemod : far
extrn startmod : far
extrn stopmod : far
extrn timer : dword
extrn sequence : far
extrn position : far
;────────────────────────────────────────────────────────────
.386p
assume cs:code16, ss:MyStack
;───────────────────────────────────────────────────────────────────────────────
Code16 segment para use16
Text_off dw 0
Last_pattern db 0
device db 5
port dw 0
irq db 0
dma db 0
;─────────────────────────────> Procedures <─────────────────
include inc\setpal.inc
include inc\scr_buff.inc
include inc\write.inc
include inc\landscap.inc
include inc\snow.inc
;────────────────────────────────────────────────────────────
;─────────────────────────────> Crystal player init <────────
start16: mov bx, ss
mov ax, es
sub bx, ax
mov ax, sp
add ax, 15
shr ax, 4
add bx, ax
mov ah, 4ah
int 21h
;────────────────────────────────────────────────────────────
mov ax, seg module
shl eax, 16
mov ax, offset module
push eax
call MLoadMOD
jc ShutDown
push cs
push offset device
push cs
push offset port
push cs
push offset irq
push cs
push offset dma
call DetectSND
push 00b4h
mov al, device
xor ah, ah
push ax
push word ptr port
mov al, irq
push ax
call SetMOD
mov ax, 13h
int 10h
call Set_pal
call STR_make
call StartMOD
mainloop:
call MakeMOD
call VS_clear
call Land_draw
call Write
mov ax, seg Sequence
mov ds, ax
mov al, [byte ptr ds:Position]
mov ah, Last_pattern
Sync1: cmp ah, al
je Sync2
mov Last_pattern, al
inc bp
mov Text_off, bp
Sync2: call MakeMOD
call Land_move
call STR_move
call MakeMOD
call STR_show
call VS_show
in al, 60h
cmp al, 63h
ja mainloop
call StopMOD
call UnloadMOD
ShutDown:
mov ax, 3
int 10h
mov ax, 4c01h
int 21h
ret
Code16 ends
;───────────────────────────────────────────────────────────────────────────────
;───────────────────────────────────────────────────────────────────────────────
Font_data segment para use16
font: include inc\font.dat
font_pal: include inc\font.pal
message db ' THE WINTER IS ON,', 0feh
db 'SNOW IS ALL AROUND', 0feh
db ' CHRISTMAS TREE ', 0feh
db ' IN HOME, WE HAVE ', 0feh
db ' A GOOD TIME! ', 0feh
db 0ffh
db 'IN DIZ LOVELY TIME', 0feh
db ' ELYSIUM''D GLADLY ', 0feh
db ' WISH ALL OF YOU ', 0feh
db '* A MERRY ', 0feh
db ' CHRISTMAS ! *', 0feh
db 0ffh
db 'ESPECIALLY TO OUR ', 0feh
db ' FRIENDS FROM : ', 0feh
db '* ABSENCE * ', 0feh
db ' * A.C.M.E * ', 0feh
db ' * BOTTOM * ', 0feh
db 0ffh
db ' * BYTELAND *', 0feh
db ' * CAMORRA * ', 0feh
db '* CNCD * ', 0feh
db ' * C.O.M.A * ', 0feh
db ' * COMPLEX * ', 0feh
db 0ffh
db '* DARK LEGIONS * ', 0feh
db ' * EXCEPTION * ', 0feh
db ' * EXMORTIS * ', 0feh
db ' * FAITH * ', 0feh
db '* FASCINATION * ', 0feh
db 0ffh
db ' * FUEL * ', 0feh
db ' * FUSE * ', 0feh
db ' * GRID * ', 0feh
db ' * GUARDIANS *', 0feh
db '* HALCYON * ', 0feh
db 0ffh
db ' * HOUSE-SOFT * ', 0feh
db ' * HYPNOTIZE * ', 0feh
db '* IMPACT STUDIOS *', 0feh
db ' * IMPHOBIA * ', 0feh
db ' * JAMM * ', 0feh
db 0ffh
db ' * K.L.F. * ', 0feh
db ' * LOGIC DESIGN *', 0feh
db '* LOGRUS * ', 0feh
db ' * LUZIK DIZAJN *', 0feh
db ' * MAJIC 12 * ', 0feh
db 0ffh
db ' * MELON DESIGN * ', 0feh
db ' * METHADONE * ', 0feh
db ' * MIST * ', 0feh
db ' * MOONLIGHT * ', 0feh
db ' * MOTION * ', 0feh
db 0ffh
db ' * OBSFUCATION * ', 0feh
db ' * ORANGE * ', 0feh
db ' * OXYGENE * ', 0feh
db ' * P.B. * ', 0feh
db ' * POISON * ', 0feh
db 0ffh
db ' * PULP * ', 0feh
db ' * PULSE * ', 0feh
db ' * REALTECH * ', 0feh
db ' * REBELION * ', 0feh
db ' * RESISTANCE * ', 0feh
db 0ffh
db ' * REVOLT * ', 0feh
db ' * SHOCKER * ', 0feh
db ' * SUBSTANCE * ', 0feh
db ' * TATE * ', 0feh
db ' * TRITON * ', 0feh
db 0ffh
db ' * URINATE * ', 0feh
db ' * VLA * ', 0feh
db ' ', 0feh
db 'SPECIAL BLESSINGS ', 0feh
db ' TO MEGGIE J. ', 0feh
db 0ffh
db ' ELYSIUM XMAS ''96 ', 0feh
db ' ', 0feh
db ' CODE : EXODUS ', 0feh
db ' MUSIC : BIZARE ', 0feh
db ' ', 0feh
db 0ffh
db ' NOW ', 0feh
db ' GO AND GET ', 0feh
db ' YOUR PRESENTS! ', 0feh
db ' ', 0feh
db ' (C) 1996 ELYSIUM ', 0feh
db 0ffh, 0
font_pos dw ?
Font_data ends
;───────────────────────────────────────────────────────────────────────────────
;───────────────────────────────────────────────────────────────────────────────
Module_data segment para use16
module: include inc\music.dat
Module_data ends
;───────────────────────────────────────────────────────────────────────────────
;───────────────────────────────────────────────────────────────────────────────
Landscape_data segment para use16
landscape: include inc\landscap.dat
line_buffer: dd 20 dup (?)
Landscape_data ends
;───────────────────────────────────────────────────────────────────────────────
;───────────────────────────────────────────────────────────────────────────────
Stars_data segment para use16
stars: dw Stars_nbr dup (?)
Stars_data ends
;───────────────────────────────────────────────────────────────────────────────
;───────────────────────────────────────────────────────────────────────────────
Screen_data segment para use16
virt_scrn: dd 14400 dup (?)
Screen_data ends
;───────────────────────────────────────────────────────────────────────────────
;───────────────────────────────────────────────────────────────────────────────
MyStack segment para stack
db 200h dup (?)
MyStack ends
;───────────────────────────────────────────────────────────────────────────────
end start16