pause mulu d5,d5 ; yes i know processor timings dont work in
; faster machines, but do you really want
; to run this demo on a 68030 amiga?????
dbra d6,pause
lea fcols+2,a0
moveq #31,d0
falp1 move.w (a0),d1
lsr.w #1,d1
and.w #%011101110111,d1
move.w d1,(a0)
addq.l #4,a0
dbra d0,falp1
dbra d3,fadelp
move.l gfxbse,a6
add.l #$32,a6
move.l #newcpr,(a6)
move.w #$8080,$dff096
move.w #$8010,$dff09a
move.l #new,$6c.w
wait2 btst #10,$dff016
bne.s wait2
move.l old,$6c.w ; Return to workbench
move.l gfxbse,a6 ; copper list
add.l #$32,a6
move.w #$0080,$dff096
move.l oldcpr,(a6)
move.w #$8080,$dff096
move.l gfxbse,a1 ; Close graphics library
move.l $4.w,a6
jsr -$19e(a6)
bsr mt_end
error:
move.l 4.w,a6
jsr -138(a6) ; CALLEXEC PERMIT()
clr.l d0 ; exit routine
rts
new2: movem.l d0-d7/a0-a6,-(sp)
and.w #$10,$dff01e
beq.s out2
move.w #$10,$dff09c
bsr mt_music
out2: movem.l (sp)+,d0-d7/a0-a6
dc.w $4ef9 ; jsr instruction
old2: dc.l 0
new: movem.l d0-d7/a0-a6,-(sp) ; save all registers
and.w #$10,$dff01e ; check if it is
beq.s out
move.w #$10,$dff09c
bsr starmov
bsr.s scroll
bsr mt_music
bsr aniami
bsr robin
bsr snow1
bsr sle1
bsr flashit
bsr barqual
out: movem.l (sp)+,d0-d7/a0-a6
dc.w $4ef9 ; jsr instruction
old: dc.l 0
prnchr: lea font,a0
lea logo+40,a1 ; destination
sub.b #32,d0 ; de-ascii
mulu #512,d0 ; find position in font
add.l d0,a0
moveq #3,d1
lp1 moveq #31,d2
move.l a1,a2
lp2 move.l (a0)+,(a2)
add.l #44,a2
dbra d2,lp2
add.l #3920,a1
dbra d1,lp1
rts
SCROLL cmp.b #0,scrlctd
beq.s scrl2
subq.b #1,scrlctd
rts
scrl2 bsr.s blitscr
move.b scrlptr,d0
subq.b #1,d0
beq.s zero
move.b d0,scrlptr
rts
zero move.b #8,scrlptr
move.l txtptr,a0
moveq #0,d0
move.b (a0)+,d0
cmp.b #0,d0
bne.s charok
move.l #text,txtptr
bra.s zero
charok cmp.b #254,d0
bne.s notpuse
move.b #80,scrlctd
move.l a0,txtptr
moveq #32,d0
bsr prnchr
rts
notpuse move.l a0,txtptr
bsr prnchr
rts
blitscr
moveq #3,d0
lea logo,a0
blitlp btst #14,$dff002
bne.s blitlp
move.l a0,$dff050
move.l a0,a1
subq.l #2,a1
move.l a1,$dff054
clr.l $dff064
move.l #-1,$dff044
move.w #%1101100111110000,$dff040
clr.w $dff042
move.w #22+33*64,$dff058
add.l #3920,a0
dbra d0,blitlp
blitfin btst #14,$dff002
bne.s blitfin
rts
barqual
move.w chn1,d0
lsr.w #1,d0
move.w d0,chn1
move.w chn2,d0
lsr.w #1,d0
move.w d0,chn2
move.w chn3,d0
lsr.w #1,d0
move.w d0,chn3
move.w chn4,d0
lsr.w #1,d0
move.w d0,chn4
rts
starmov bsr.s move0
bsr.s move1
bsr.s move2
bsr move3
rts
move0 lea sprite0+69*8,a0
moveq #68,d0
move.b 1(a0),saveval
mv0lp move.b -7(a0),1(a0)
subq.l #8,a0
dbra d0,mv0lp
move.b saveval,d0
move.b $dff007,d1
eor.b d1,d0
move.b d0,1(a0)
rts
move1 lea sprite1+69*8,a0
moveq #68,d0
move.b 1(a0),saveval
mv1lp move.b -7(a0),1(a0)
subq.l #8,a0
dbra d0,mv1lp
move.b saveval,d0
move.b $dff007,d1
eor.b d1,d0
move.b d0,1(a0)
rts
move2 lea sprite2+69*8,a0
moveq #68,d0
move.b 1(a0),saveval
mv2lp move.b -7(a0),1(a0)
subq.l #8,a0
dbra d0,mv2lp
move.b saveval,d0
move.b $dff007,d1
eor.b d1,d0
move.b d0,1(a0)
rts
move3 lea sprite3+69*8,a0
moveq #68,d0
move.b 1(a0),saveval
mv3lp move.b -7(a0),1(a0)
subq.l #8,a0
dbra d0,mv3lp
move.b saveval,d0
move.b $dff007,d1
eor.b d1,d0
move.b d0,1(a0)
rts
aniami bchg #0,amion
beq.s goami
rts
goami
move.b amiset,d0
cmp.b #0,d0
bne.s notfr1
bra.s amifr1
notfr1 cmp.b #1,d0
bne.s notfr2
bra.s amifr2
notfr2 cmp.b #2,d0
bne.s amifr4
bra.s amifr3
amifr2 lea ami2,a0
bsr.s plami
move.b #2,amiset
rts
amifr3
lea ami3,a0
bsr.s plami
move.b #3,amiset
rts
amifr4
lea ami4,a0
bsr.s plami
move.b #0,amiset
rts
amifr1 lea ami1,a0
plami
lea piccy+20,a1
moveq #4,d0 ; 5 bitplanes
af1l1 move.l a1,a2 ; keep a1 clean
moveq #31,d1 ; 32 lines
af1l2 move.l (a0)+,(a2)+
move.l (a0)+,(a2)
add.l #36,a2
dbra d1,af1l2
add.l #6440,a1
dbra d0,af1l1
move.b #1,amiset
rts
robin move.w chn1,d0
cmp.w #%1111,d0
beq.s robfr4
cmp.b #%111,d0
beq.s robfr3
cmp.b #%11,d0
beq.s robfr2
cmp.b #%1,d0
beq.s robfr1
rts
robfr1 lea rob1,a0
bra.s robon
robfr2 lea rob2,a0
bra.s robon
robfr3 lea rob3,a0
bra.s robon
robfr4 lea rob4,a0
robon
lea piccy+8+40*23,a1
moveq #4,d0 ; 5 bitplanes
ro1l1 move.l a1,a2 ; keep a1 clean
moveq #31,d1 ; 32 lines
ro1l2 move.l (a0)+,(a2)+
add.l #36,a2
dbra d1,ro1l2
add.l #6440,a1
dbra d0,ro1l1
rts
snow1 move.w chn3,d0
cmp.w #%1111,d0
beq.s sn1fr4
cmp.b #%111,d0
beq.s sn1fr3
cmp.b #%11,d0
beq.s sn1fr2
cmp.b #%1,d0
beq.s sn1fr1
rts
sn1fr1 lea sno11,a0
bra.s sn1on
sn1fr2 lea sno12,a0
bra.s sn1on
sn1fr3 lea sno13,a0
bra.s sn1on
sn1fr4 lea sno14,a0
sn1on
lea piccy+4+40*74,a1
moveq #4,d0 ; 5 bitplanes
sn1l1 move.l a1,a2 ; keep a1 clean
moveq #31,d1 ; 32 lines
sn1l2 move.w (a0)+,(a2)+
addq.l #2,a0
add.l #38,a2
dbra d1,sn1l2
add.l #6440,a1
dbra d0,sn1l1
rts
sle1 move.w chn4,d0
cmp.w #%1111,d0
beq.s sl1fr4
cmp.b #%111,d0
beq.s sl1fr3
cmp.b #%11,d0
beq.s sl1fr2
cmp.b #%1,d0
beq.s sl1fr1
rts
sl1fr1 lea sley1,a0
bra.s sl1on
sl1fr2 lea sley2,a0
bra.s sl1on
sl1fr3 lea sley3,a0
bra.s sl1on
sl1fr4 lea sley4,a0
sl1on
lea piccy+12+40*15,a1
moveq #4,d0 ; 5 bitplanes
sl1l1 move.l a1,a2 ; keep a1 clean
moveq #31,d1 ; 32 lines
sl1l2 move.l (a0)+,(a2)+
add.l #36,a2
dbra d1,sl1l2
add.l #6440,a1
dbra d0,sl1l1
rts
flashit move.l flashptr,a0
move.w (a0)+,d0
cmp.w #$ffff,d0
bne.s flash2
move.l #flashdata,flashptr
bra.s flashit
flash2 move.l a0,flashptr
move.w d0,flcol
rts
amion dc.b 0
amiset dc.b 0
saveval dc.b 0
scrlptr dc.b 6
scrlctd dc.b 0
even
txtptr dc.l text
text dc.b " IT'S CHRISTMAS TIME AND TIME FOR A FAIRLY SEASONAL AMIGA COMPUTING DEMO. "
DC.B " THIS DEMO EVOLVED IN THE PRESENCE OF JOLYON RALPH. THE NICE PICCY BELOW WAS"
DC.B " DRAWN BY RUSSEL WARK AND HE ALSO DREW THIS FONT. "
dc.b " FIRSTLY I "
DC.B "MUST APOLOGISE TO MY FAN FOR NOT DOING A DEMO LAST MONTH, BUT THINGS GOT TOO BUSY! SORRY! "
dc.b " SPECIAL MESSAGES AND ADVERTISMENTS.... HAVE YOU GOT A MODEM? PHONE THE BEST BBS IN THE WHOLE "
DC.B "WORLD, MAX! ",254," PHONE MAX ON (0905) 52536/56610/57822/754127/754151 NOW! ALL SPEEDS FROM 300 BAUD (SLOOOOOOW) "
DC.B "TO MEGA-SUPER-DOOPER FAST 19.2K BAUD WITH HST AND MNP LEVEL 5 ERROR CORRECTION (LOG ON AND SAY - I SAW THIS ADVERT "
DC.B " GET ON AND BOOGY DOWN TO THE HOTTEST BOARD THIS SIDE OF THE UKRAINE. "
dc.b " SORRY TO MARK FOR FORGETTING YOU IN THE LAST DEMO. ERM. SORRY I'VE FORGOTTEN WHAT YOU ASKED ME TO SAY. PERHAPS "
DC.B "THE NEXT ONE. "
DC.B " MESSAGE TO ALL YOU ST OWNERS OUT THERE... THE SECRET IS TO BANG THE ROCKS TOGETHER... "
DC.B "OH YES, THE CREDITS... CODE CODED BY THE ONE AND ONLY (EXCEPT FOR ALL THE OTHERS) ---- JOLYON RALPH ---- "
DC.B "AND NOW IT'S MY GOOD OLE BUDDY ---- RUSS WARK ---- WRITING INTO THE ETHER.. WATCH OUT FOR HIS WEIRD CARTOONS IN THE MAGAZINE - SMUT - "
dc.b " HI THIS IS RUSS HERE. I DREW ALL THE GRAPHICS FOR THIS GREAT DEMO, AND I'M ALWAYS AVAILABLE FOR OTHER GRAPHIC WORK. "
DC.B "JUST A FEW PERSONAL GREETS: HI TO... NADEEM (FLASH GIT), DEREK LEIGH-GILCHRIST (SEE YOU SOON), KEVIN COLLIER (TOO LATE FOR AN XMAS TUNE NOW), "
DC.B "STEVE HOGG (HOWAY MAN! YA GEET GEORDIE!!!), ADAM LUCAS (HAVE YOU HAD ANOTHER HAIRCUT YET?), RICHARD APLIN (THE LAST ONE TO THE 'OFFY IS A WOMAN!! OH, AND "
DC.B "DOUBLE DRAGON II LOOKS CANNY...), JOBY WOOD (DON'T FALL ASLEEP AT THE COMMODORE SHOW), GARETH (I WANNA SEE YOUR PARTY TRICKS...) (YUUUK. THEY'RE DISGUSTING! - JOLYON) "
DC.B "RASIKA (I WOULDN'T MIND MY VIDEO BACK SOMETIME...) (AND MINE! - JOLYON). HELLO TO EVERYONE AT CROYDON COLLEGE (SELHURST CENTRE)... "
DC.B " AND A REMINDER TO... TIM YOU OWE ME FIVE DISKS FROM A YEAR AGO. PAY UP OR DIE!!!!! "
DC.B " WELL DONE TO RED SECTOR FOR THE BEST MEGADEMO SO FAR.. IT WAS AWESOME... TOMAS DAHLGREN - YOUR MUSIC IS MEGA "
DC.B " MESSAGE TO MATTIAS - TRY NOT TO HAVE TOO MANY MORE 3000 POUND PHONEBILLS! "
DC.B " GOODBYE AND SO LONG - RUSS... "
DC.B " OK ITS JOLYON BACK ON THE KEYS... "
dc.b "FIRST A MESSAGE TO ALL YOU BORING OS PROGRAMMERS OUT THERE "
dc.b " DON'T COMPLAIN AT ME IF YOU DON'T LIKE MY CODE. I CODE FOR FUN "
DC.B " IF COMMODORE FINALLY RELEASE A BUG-FREE OS THAT'S FAST ENOUGH TO USE THEN "
DC.B "I'LL USE IT (WE DON'T RE-INVENT THE WHEEL FOR FUN YOU KNOW, WE WRITE OUR OWN LINE "
DC.B "ROUTINES, SCREEN ROUTINES, ETC BECAUSE THE ROM ROUTINES ARE SO SLOW!) "
DC.B "I DON'T LIKE THE IDEA OF SOMEONE TELLING ME WHICH WAY TO WRITE MY CODE. I'LL WRITE IT HOWEVER I LIKE, AND I LIKE HITTING THE HARDWARE "
DC.B " DAVE PARKINSON - IF YOU REALLY THINK YOU COULD WRITE A FAST ARCADE GAME WITH MULTITASKING "
DC.B "THEN GO AHEAD AND WRITE ONE, I'LL GUARANTEE IT WILL BE A PILE OF JUNK. CAN YOU SERIOUSLY TELL US "
DC.B "THAT THE AMIGA'S MULTITASKING CAN LOAD IN GRAPHICS FOR THE NEXT LEVEL WHILE THE GAME IS PLAYING. "
DC.B "IF YOU'VE GOT ENOUGH RASTER TIME LEFT TO DO THAT, THE GAME MUST BE REAL CRAP! FOR FAST ARCADE GAMES "
DC.B "YOU MUST DITCH THE OS. NO QUESTION. OK? "
DC.B "ONE FINAL CUTTING COMMENT... IF YOU HAD DITCHED MULTITASKING IN BBC EMULATOR IT WOULD HAVE BEEN MUCH EASIER "
DC.B "FOR YOU TO MAKE THE EMULATOR READ BBC FORMAT DISKS, MAKING YOUR BBC EMULATOR ACTUALLY RATHER USEFUL. "
dc.b "AND NOW I WILL TELL YOU THE REAL SECRETS OF PROGRAMMING THIS "
dc.b "WONDERFUL MACHINE, THE SORT OF FACTS THAT NOT EVEN MY ARTICLES "
dc.b "COULD EXPOSE. FIRSTLY. LEARN TO USE 68000 WELL. LEARN THE INSTRUCTIONS VERY WELL. TRY USING MOVE.W, IT'S A VERY NICE INSTRUCTION "
dc.b "(MY FAVOURITE). REGISTERS ARE USEFUL TOO. A0 AND D0 ARE MY PERSONAL FAVOURITES, ALTHOUGH I QUITE LIKE D1 TOO. DON`T TOUCH THE "
dc.b "STACK WITH A BARGE POLE, AND IF YOU DO TOUCH IT WITH A BARGE "
dc.b "POLE, REMEMBER TO REMOVE THE POLE BEFORE YOU EXIT. IF YOU EVER RUN OUT OF REGISTERS, REMEMBER "
dc.b "THAT YOU MAY HAVE TO USE SOME OF THEM TWICE. IT WAS VERY THOUGHTLESS OF MOTOROLA TO GIVE US A CHIP THAT COULD ACCESS 16 MEGABYTES "
dc.b "BUT ONLY TO GIVE US A HANDFULL OF REGISTERS TO ACCESS IT. "
dc.b "REMEMBER THAT ASSEMBLING YOUR FILE BEFORE EXECUTION IS THE NORM "
dc.b "NOWDAYS. AND NOW A SHORT WORD FROM MY GOOD FRIEND RUSS... "
dc.b " HI. YES RUSS, THAT WAS A VERY SHORT WORD. WELL DONE. AND "
dc.b "COMING UP NOW SOME SPECIAL MESSAGES.... HEY DEREK, IGNORE "
dc.b "THE REVIEWS, I THOUGHT YOUR GAME (BATTLE VALLEY) WAS VERY GOOD. "
dc.b "TO MARK IN BELFAST. I HOPE "
dc.b "THE CGA CARD WORKED. THANKS FOR ALL YOUR HELP. TO JON "
dc.b "OF MAX. SORRY `BOUT THE OTHER DEMOS, HOPE THIS ADVERT MAKES UP "
dc.b "FOR IT ALL... TO STEVE.... MONEY SOON I PROMISE.... TO "
dc.b "KEVIN.... SMART MUSIC DESERVES A SMART MUSICDEMO. I`LL SEE WHAT I "
dc.b "CAN CONJURE UP... TO DAVE FROM 17 BIT. WHY HAVEN`T I HEARD FROM "
dc.b "YOU IN SUCH A LONG TIME? TO MY SISTER. LOOK AT ALL THE TROUBLE "
dc.b "YOUR SPURIOUS COMMENTS ABOUT POLAND CAUSED. THE WHOLE EASTERN "
dc.b "BLOCK IS NOW IN TURMOIL DUE TO YOUR INSENSITIVE REMARKS. TO "
dc.b "MY CATS. MEEEOOOWW. AND NOW ANOTHER FREE (ERHM. DONATIONS "
dc.b "WELCOME) ADVERTISMENT: THE BEST COMPUTER SHOP IN THE WHOLE "
dc.b "WORLD. NOT ONLY DO THEY SELL CHEAP COMPUTER HARDWARE AND SOFTWARE, BUT EVERY PURCHASE BRINGS THE CUSTOMER 5 YEARS GOOD LUCK "
dc.b "AND GUARANTEED PROTECTION FROM ALL KNOWN VAMPIRES. WHO AM I "
dc.b "TALKING ABOUT? SABRE COMPUTER CENTRE, IN-SHOPS, CROYDON. ASK "
dc.b "FOR TONY, AND SAY ""I`VE BEEN STUPID ENOUGH TO READ ALL THE SCROLLY "
dc.b "MESSAGE IN THAT BORING AMIGA COMPUTING CHRISTMAS DEMO AND I SAW THE ADVERT AND CAME TO YOUR SHOP"", AND YOU'LL GET A MASSIVE "
dc.b "0.5% DISCOUNT ON ANY PURCHASE OVER 4000 QUID. "
dc.b " SERIOUSLY NOW, SEE TONY IF YOU WANT A GOOD DEAL. OH, AND TONY, THANKS FOR LENDING ME THE ARCHIMEDES, I STILL THINK "
DC.B "THE AMIGA IS A NICER COMPUTER (MAY NOT BE AS FAST, BUT IT'S A LOT MORE FUN TO PLAY WITH).... "
DC.B " OH WELL, I'VE RUN OUT OF THINGS TO SAY AGAIN. PERHAPS WE WILL MEET AGAIN IN SOME DISTANT SCROLLY-MESSAGE, PERHAPS NOT. "
DC.B " WELL, FOR THE MOMENT, IT'S JOLYON RALPH SAYING. BYEBYE AND HAVE FUN KIDDIES.... ",0