;*** ENTROPY MINI DEMO *** ;~~~~~~~~~~~~~~~~~~~~~~~~~ ;HOT BUTTER Demo ;(C) 1992 SIMON COOKE ORG 60000 DUMP 60000 MDAT "tune" ;taken from SINCLAIR user . 128k Spectrum music ORG &8000 DUMP &8000 DI XOR A LD BC,&0FF8 ;set palette to black pal.black: OUT (C),A DJNZ pal.black OUT (C),A LD SP,0 ;set stack to zero, and set up paging LD A,62 OUT (&FA),A OUT (&FC),A LD BC,511 ;turn soundchip on. LD A,28 OUT (C),A DEC B LD A,1 OUT (C),A LD A,2 ;initialise scrolly LD (scroll.count+1),A LD HL,scroll.mess LD (scroll.pos+1),HL CALL 60000 ;initialise music & call the converter routine CALL play.chip LD A,46 ; set up lower memory paging OUT (&FA),A LD HL,0 ;clear lower memory LD DE,1 LD BC,&5FFF LD (HL),L LDIR LD A,32 OUT (&FA),A LD HL,scroll.mess ;copy scroll text using a buffer LD DE,0 LD BC,6912 LDIR LD A,35 OUT (&FA),A LD HL,0 ;copy it back. LD DE,scroll.mess LD BC,&2000 LDIR LD A,46 OUT (&FA),A LD HL,scroll.mess ;copy it again LD DE,0 LD BC,&2000 LDIR LD A,35 OUT (&FA),A LD HL,reset ;copy reset screen to reset screen page. LD DE,scroll.mess LD BC,&2000 LDIR LD A,45 ;set paging to mode 2 screen area -- for OUT (&FA),A ;scroll text LD HL,&0 ;initialise the page, clearing it and LD DE,&1 ;setting up the attribute data. LD BC,6143 LD (HL),&0F LDIR LD HL,&2000 LD DE,&2001 LD (HL),0 LD BC,6143 LDIR LD A,46 ;page again OUT (&FA),A LD BC,&F8 ;set up scroller palette in CLUT LD HL,scroller.pal LD E,16 pal.out: LD A,(HL) OUT (C),A INC B INC HL DEC E JR NZ,pal.out main.sine.loop: ;check for yscan line to reach line 176 LD BC,504 IN A,(C) CP 176 JP NZ,main.sine.loop LD A,45 ;page in mode 2 screen at this line OUT (&FC),A OUT (&FA),A ;page it into LMPR too... CALL scrolly ;scroll the data (because the first line ;of the scrolly has been displayed, the ;code won't be able to keep up with the ;display refresh, and thus won't give ;any flicker, as the area being updated ;won't be displayed again until next frame) LD A,110 ;page in mode 4 screen (raster will have OUT (&FC),A ;entered lower border area) LD A,(rega) ;get volume levels and set up the palette AND &0F ;of the bouncing sprite depending on the LD E,A ;volume level -- bright = loud LD D,0 LD HL,gobpalette ADD HL,DE LD A,(HL) LD BC,&07F8 OUT (C),A LD A,(reg8) AND &0F LD E,A LD D,0 LD HL,gobpalette ADD HL,DE LD A,(HL) LD BC,&0DF8 OUT (C),A LD A,46 ;set up paging again -- page in MODE4 OUT (&FA),A ;screen CALL eflyer ;put little ENTROPY logo flying around and ;bouncy sprite on screen. CALL 60006 ;play music CALL play.chip ;call the converter JP main.sine.loop ;Put the ENTROPY logo up on screen, moving in a pre-calculated position table ;and also the bouncing poi-poi. eflyer: pose1: LD A,20 LD HL,eflytable2 LD E,A LD D,0 ADD HL,DE LD A,(HL) xpos: LD L,0 LD H,A SRL H RR L CALL blank.sprite ;clear the poi poi... adder: LD A,(pose1+1) ;check for it hitting screen edges, and if INC A ;it does, reverse its direction. LD (pose1+1),A LD A,(xpos+1) add.n: ADD A,2 LD (xpos+1),A CP 240 JR Z,edges OR A JR NZ,noshift JR Z,zero edges: LD A,254 LD (add.n+1),A JR noshift zero: LD A,2 LD (add.n+1),A noshift: LD A,(pose1+1) LD E,A LD D,0 LD HL,eflytable2 ADD HL,DE LD H,(HL) LD A,(xpos+1) LD L,A SRL H RR L LD DE,poipoi ;put the little bouncing POI POI on screen CALL put.sprite CALL vubar ;put the Vubars on screen. ;Put the ENTROPY logo onscreen. pose: ;Y position LD A,&00 LD B,7 loop.blank1: PUSH BC ;first of all, blank them all. PUSH AF LD L,A LD H,0 ADD HL,HL LD DE,eflytable ADD HL,DE LD E,(HL) INC HL LD D,(HL) EX DE,HL CALL blank.sprite POP AF ADD A,3 POP BC DJNZ loop.blank1 LD A,(pose+1) INC A LD (pose+1),A LD IX,eflysprites+768 LD B,7 loop.blank2: PUSH BC PUSH AF LD L,A LD H,0 ADD HL,HL LD DE,eflytable ADD HL,DE LD E,(HL) INC HL LD D,(HL) EX DE,HL PUSH IX POP DE CALL put.sprite ;now put them back on in a new position POP AF ADD A,3 LD DE,&FF80 ADD IX,DE POP BC DJNZ loop.blank2 RET ;Large ATTRIBUTE scroller. scrolly: LD HL,&3601 LD DE,&3600 CALL scroll.attr ;scroll attribute area of screen. scroll.count: LD A,0 ;dec counter by 2... DEC A DEC A LD (scroll.count+1),A JP NZ,scroll.bigmess scroll.pos: LD HL,0 ;get a new character and put it on the end scroll.re: ;of the font data. LD A,(HL) INC HL LD (scroll.pos+1),HL CP 255 JP NZ,not.wrap LD HL,scroll.mess JP scroll.re not.wrap: LD L,A LD H,0 ADD HL,HL ADD HL,HL ADD HL,HL LD DE,font-256 ADD HL,DE LD (font.pos+1),HL LD A,8 LD (scroll.count+1),A ;reset delay counter. scroll.bigmess: LD A,(scroll.count+1) ;take set up bit table routine DEC A LD L,A LD H,0 LD DE,bit.table ADD HL,DE LD A,(HL) LD (operation),A LD A,(scroll.count+1) SUB 2 LD L,A LD H,0 LD DE,bit.table ADD HL,DE LD A,(HL) LD (operationb),A font.pos: LD HL,0 ;get ready to copy attributes LD DE,colour.map LD IX,&361F LD A,8 scroll.line: PUSH AF LD C,%11000000 DEFB &CB ;BIT n,(HL) ;self modifying -- defined by above operation: ;routine. DEFB &46 ;n... JP Z,nobit LD C,%11111000 nobit: LD B,%11000000 DEFB &CB operationb: DEFB &46 JP Z,nobitb LD B,%11000111 nobitb: LD A,C OR B LD C,A LD A,(DE) AND C LD (IX),A LD (IX+32),A INC HL PUSH DE LD DE,64 ADD IX,DE POP DE INC DE POP AF DEC A JP NZ,scroll.line RET bit.table: DEFB &46,&4E,&56,&5E,&66,&6E,&76,&7E colour.map: DEFB %00011011 DEFB %00100100,%00101101,%00110110,%00101101 DEFB %00100100,%00011011,%00010010 font: MDAT "stfont" ;Fast ATTRIBUTE scroller -- uses LOTS of LDI's scroll.attr: LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI LDI RET ;*************************************************************** scroller.pal: DEFB 0,32,34,38,98,102,111,4,16,17,21,81,85 DEFB 15,120,127 ;Convert 128k Spectrum (AY-3-8192) music to SAM (SAA1099) outdout: PUSH AF PUSH DE PUSH BC PUSH HL LD A,(HL) LD HL,(register) LD (HL),A POP HL DEC HL POP BC POP DE POP AF RET setrega: PUSH AF PUSH DE PUSH BC PUSH HL AND &0F LD L,A LD H,0 LD DE,reg ADD HL,DE LD (register),HL POP HL POP BC POP DE POP AF RET outrega: PUSH AF PUSH DE PUSH BC PUSH HL LD HL,(register) LD (HL),A POP HL POP BC POP DE POP AF RET setregd: PUSH AF PUSH DE PUSH BC PUSH HL AND &0F LD L,A LD H,0 LD DE,reg ADD HL,DE LD (register),HL POP HL POP BC POP DE POP AF RET outrege: PUSH AF PUSH DE PUSH BC PUSH HL LD HL,(register) LD (HL),E POP HL POP BC POP DE POP AF RET ;************* PLAY DATA THROUGH SAM SOUND CHIP **************** play.chip: LD HL,reg LD C,255 LD E,(HL) INC HL LD D,(HL) LD A,(reg+7) AND 8 LD A,(reg+8) LD B,A JR Z,p1 LD A,D OR E LD A,B JR NZ,p1 XOR A p1: LD (data+1),A INC HL PUSH HL EX DE,HL LD DE,freq.table ADD HL,HL ADD HL,DE LD A,10 LD B,1 OUT (C),A LD A,(HL) LD B,0 OUT (C),A INC HL LD A,(HL) LD (data),A POP HL LD E,(HL) INC HL LD D,(HL) LD A,(reg+7) AND 16 LD A,(reg+9) LD B,A JR Z,p2 LD A,E OR D LD A,B JR NZ,p2 XOR A p2: LD (data+2),A INC HL PUSH HL EX DE,HL LD DE,freq.table ADD HL,HL ADD HL,DE LD A,11 LD B,1 OUT (C),A LD A,(HL) LD B,0 OUT (C),A INC HL LD B,1 LD A,17 OUT (C),A LD A,(HL) ADD A,A ADD A,A ADD A,A ADD A,A LD B,A LD A,(data) OR B LD B,0 OUT (C),A POP HL LD E,(HL) INC HL LD D,(HL) LD A,(reg+7) AND 32 LD A,(reg+10) LD B,A JR Z,p3 LD A,E OR D LD A,B JR NZ,p3 XOR A p3: LD (data+3),A INC HL PUSH HL EX DE,HL LD DE,freq.table ADD HL,HL ADD HL,DE LD A,13 LD B,1 OUT (C),A LD A,(HL) LD B,0 OUT (C),A INC HL LD A,(HL) ADD A,A ADD A,A ADD A,A ADD A,A LD (data),A POP HL LD B,1 LD A,22 OUT (C),A LD A,(HL) AND 31 SUB 7 JP NC,p4 XOR A JP p5 p4: SUB 10 JP NC,p6 LD A,17 JP p5 p6: LD A,34 p5: LD B,0 OUT (C),A INC HL LD B,1 LD DE,0 LD A,(HL) BIT 0,A JP NZ,p7 SET 2,D p7: BIT 3,A JP NZ,p8 SET 2,E p8: BIT 1,A JP NZ,p9 SET 3,D p9: BIT 4,A JP NZ,p10 SET 3,E p10: BIT 2,A JP NZ,p11 SET 5,D p11: BIT 5,A JP NZ,p12 SET 5,E p12: LD A,20 OUT (C),A LD B,0 OUT (C),D INC A LD B,1 OUT (C),A LD B,0 OUT (C),E LD A,(data+1) AND 240 LD D,A JP NZ,p13 LD A,24 LD B,1 OUT (C),A LD B,0 OUT (C),B p13: LD A,(data+3) AND 240 LD E,A JP NZ,p14 LD A,25 LD B,1 OUT (C),A LD B,0 OUT (C),B p14: LD A,E OR D CALL NZ,set.envelope LD B,1 LD A,2 OUT (C),A LD A,(data+1) LD B,A SUB 16 JR C,p15 LD B,15 p15: LD A,B LD B,0 OUT (C),A LD B,1 LD A,3 OUT (C),A LD A,(data+2) AND 15 LD B,A ADD A,A ADD A,A ADD A,A ADD A,A OR B LD B,0 OUT (C),A LD B,1 LD A,5 OUT (C),A LD A,(data+3) LD B,A SUB 16 JR C,p16 LD B,15 p16: LD A,B ADD A,A ADD A,A ADD A,A ADD A,A LD B,0 OUT (C),A LD B,1 LD A,18 OUT (C),A LD A,(data) LD B,0 OUT (C),A RET set.envelope: LD A,(reg+13) AND 15 PUSH HL PUSH DE LD HL,data+4 LD D,0 LD E,A ADD HL,DE LD A,(HL) POP HL LD D,A LD A,H AND A JP Z,p17 LD A,24 LD B,1 OUT (C),A LD B,0 OUT (C),D p17: LD A,L AND A JP Z,p18 LD A,25 LD B,1 OUT (C),A LD B,0 OUT (C),D p18: LD HL,(reg+11) LD DE,freq.table ADD HL,HL ADD HL,DE LD A,(HL) LD D,A LD A,9 LD B,1 OUT (C),A LD B,0 OUT (C),D LD A,12 LD B,1 OUT (C),A LD B,0 OUT (C),D INC HL LD A,(HL) LD A,(data) OR D LD (data),A LD A,D ADD A,A ADD A,A ADD A,A ADD A,A LD D,A LD B,1 LD A,16 OUT (C),A LD B,0 OUT (C),D POP HL RET register: DEFW 0 data: DEFB 0,0,0,0 DEFB 132,132,132,132,140,140,140,140 DEFB 134,132,138,130,142,130,138,140 reg: reg0: DEFB 0 reg1: DEFB 0 reg2: DEFB 0 reg3: DEFB 0 reg4: DEFB 0 reg5: DEFB 0 reg6: DEFB 0 reg7: DEFB 0 reg8: DEFB 0 reg9: DEFB 0 rega: DEFB 0 regb: DEFB 0 regc: DEFB 0 regd: DEFB 0 DEFW 0 ;to pad out the registers so that ;there's 16 of them freq.table: MDAT "frequency" ;Put the sprites on the screen ;----------------------------- ;All the same size, so hard-coded routine for speed. ;Note: Still uses data, so not as hard-coded as it could be. put.sprite: LD BC,121 LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE ADD HL,BC LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE ADD HL,BC LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE ADD HL,BC LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE ADD HL,BC LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE ADD HL,BC LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE ADD HL,BC LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE ADD HL,BC LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE ADD HL,BC LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE ADD HL,BC LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE ADD HL,BC LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE ADD HL,BC LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE ADD HL,BC LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE ADD HL,BC LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE ADD HL,BC LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE ADD HL,BC LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE INC L LD A,(DE) LD (HL),A INC DE RET ;blank sprite area... ;now THIS is hard-coded!!! blank.sprite: LD DE,121 LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 ADD HL,DE LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 ADD HL,DE LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 ADD HL,DE LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 ADD HL,DE LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 ADD HL,DE LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 ADD HL,DE LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 ADD HL,DE LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 ADD HL,DE LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 ADD HL,DE LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 ADD HL,DE LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 ADD HL,DE LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 ADD HL,DE LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 ADD HL,DE LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 ADD HL,DE LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 ADD HL,DE LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 INC L LD (HL),0 ADD HL,DE RET eflytable: MDAT "e-fly.tbl" ;data for bouncing sprites positions eflytable2: MDAT "e-fly2" ;Data for other sprite paths... eflysprites: MDAT "e-fly" ;ENTROPY logo sprites poipoi: MDAT "esprite2" ;little bouncing POI POI sprite. vubar: LD HL,&4BB1 ;put VUBARS on screen. As fast as it could be LD DE,colourtable LD B,15 loop.vu: LD A,(reg9) CP B LD A,0 JR C,next1 LD A,(DE) next1: LD (HL),A INC L LD (HL),A INC L LD (HL),A INC L LD (HL),A INC L LD (HL),A INC L LD (HL),A INC L LD (HL),A INC L LD (HL),A INC L INC L INC L INC L LD A,(reg8) CP B LD A,0 JR C,next2 LD A,(DE) next2: LD (HL),A INC L LD (HL),A INC L LD (HL),A INC L LD (HL),A INC L LD (HL),A INC L LD (HL),A INC L LD (HL),A INC L LD (HL),A INC L INC L INC L INC L LD A,(rega) CP B LD A,0 JR C,next3 LD A,(DE) next3: LD (HL),A INC L LD (HL),A INC L LD (HL),A INC L LD (HL),A INC L LD (HL),A INC L LD (HL),A INC L LD (HL),A INC L LD (HL),A PUSH DE LD DE,99 ADD HL,DE POP DE INC DE DJNZ loop.vu RET colourtable: DEFB &11,&22,&33,&44,&55,&66,&66,&FF,&66,&66,&55 DEFB &44,&33,&22,&11 gobpalette: DEFB 0,1,8,5,7,13,15,82,112,90,120,117,119,125 DEFB 126,127 scroll.mess: MDAT "hotreset" ORG 61071 ;modify music routine DUMP 61071 CALL setrega CALL outdout NOP NOP ORG 60110 DUMP 60110 NOP ORG 0 DUMP 3,0 topscreen: MDAT "e-bot" ;entropy logo & hot butter top screen panel. reset: DEFM " " DEFM "(PAIR OF MEN LOOKING AT A GUY WITH A " DEFM "SAM COUPE' READING THIS SCROLLY AND " DEFM "MANAGING TO READ IT): " DEFB 34 DEFM "I BET HE DRINKS CARLING BLACK LABEL!" DEFB 34 DEFM " ... WELCOME TO HOT BUTTER - A DEMO " DEFM "SO NAMED BECAUSE THE GROUP THAT " DEFM "WROTE THIS TUNE ORIGINALLY WERE CALLED " DEFM "'HOT BUTTER'... SO NOW YOU KNOW... " DEFM "WELCOME TO THIS LITTLE HIDDEN DEMO IN " DEFM "PARALLAX... THE REASON THIS IS HERE, IS " DEFM "BECAUSE (1) I HAD SPARE DISC SPACE AFTER " DEFM "COMPRESSING, WRANGLING AND PROTECTING " DEFM "THIS DISC, AND (2) I WANTED TO PUT THIS " DEFM "DEMO IN SO THAT MY BOSS (LINDA BARKER) " DEFM "WOULD PUT THE 'CHEAT' IN THE YS TIPSHOP..." DEFM " WHEN I SAY SHE'S MY BOSS, I MEAN " DEFM "SHE'S THE ONE WHO PUTS ALL THOSE QUIRKY " DEFM "COMMENTS IN THE SPEC TEC COLUMN (AND REMOV" DEFM "ES ANY REFERENCES I MAKE TO CONNECTING " DEFM "SPECTRUM EXPANSION SOCKETS TO THE MAINS..." DEFM " SO HELLO TO: LINDA (" DEFM "IF YOU SEE THIS, HI! BY THE WAY, YOU'VE " DEFM "GOT A LOVELY CUTE VOICE ON THE PHONE)....." DEFM "JON (HOPE YOU LIKE STATUES OF ICE WHEN " DEFM "IT'S RELEASED).....ANDY 'O' (COOL HAIRDO!" DEFM " AND NO, I'M NOT TAKING THE PISS!)....." DEFM "RICH P (HELLO! DIDN'T TALK TO YOU MUCH " DEFM "WHEN I WAS IN THE SHED, BUT HI ANYWAY!)..." DEFM "..ADAM PETERS (HELD UP ANY GOOD McDONALDS " DEFM "LATELY???!).....AND ALL THE REST OF THE " DEFM "YOUR SINCLAIR (AND AMSTRAD ACTION) CREW! " DEFM " JUST KEEPING YOU INFORMED, HERE'S " DEFM "A LIST OF THE MEMBERS OF ENTROPY AS OF THE" DEFM " 31-08-92.......... NICAM, COOKIE, DR. H" DEFM ", MIKE A.J., MIKEY-BOY, THANATOS, THUNDER," DEFM " JUSTIN ASH, AND (WAITING FOR CONFIRMATION" DEFM " ON THIS ONE) POSSIBLY THE DVB... " DEFM "CONTACT US AT: ENTROPY, 18 BRAEMAR DRIVE, " DEFM "SALE, CHESHIRE, M33 4NJ. (OR LOOK IN ONE " DEFM "OF OUR DEMOS IN FRED - YOU'LL FIND THE " DEFM "ADDRESS IN THE BASIC LOADER AS A REM " DEFM "STATEMENT, IF YOU'RE LUCKY) " DEFM " CHEAT TIME: HOLD DOWN" DEFM " THE KEYS P-U-R-G-E ON THE TITLE SCREEN " DEFM "OF THE GAME........ " DEFM "ALSO, HOLD DOWN C-O-P-Y ON THE LOADING " DEFM "SCREEN TO LOAD THE BUILT IN GAMES COPIER.." DEFM ". (ONLY JOKING! I BET COLIN MACD " DEFM "NEARLY HAD A HEART ATTACK, THOUGH!!!)" DEFM " NO GREETZ IN HERE EXCEPT THE " DEFM "ONES YOU'VE ALREADY SEEN..... SUCH IS " DEFM "SPACE... " DEFM " THIS IS THE YOUR SINCLAIR " DEFM "-SPEC TEC- (OTHERWISE KNOWN AS COOKIE) " DEFM "SIGNING OFF FOR YET ANOTHER SCROLLY.... " DEFM "LOOK OUT FOR ENTROPY DEMOS! " DEFM "LIVE LONG AND PROSPER, PEOPLE! AND " DEFM "REMEMBER: ENTROPY - PURE CHAOS" DEFM " " DEFM "WRAPPING PAPER, DOUBLE SIDED STICKY " DEFM "TAPE, AND BERT, THE YS STICK INSECT..." DEFM " " DEFB 255