From c1f5c1ba4299f644670ac8b76e27ebbbe88c5c36 Mon Sep 17 00:00:00 2001 From: Georges Kesseler Date: Tue, 21 Feb 2012 22:09:14 +0100 Subject: [PATCH] Name change! It's now officially called parallax distorter. Quite some code added to make it into the megademo. Sound is now good, but fullscreen vanished. THis may be due to the assembler optimizing. Change the sample to infinity.dmn and then you can see the scroller, but the sound is broken. Very funny to debug that... --- PARADIST.S | 657 ++++++++++++++++++++++++++++++++--------------------- 1 file changed, 392 insertions(+), 265 deletions(-) diff --git a/PARADIST.S b/PARADIST.S index fc5eac7..455f3f6 100755 --- a/PARADIST.S +++ b/PARADIST.S @@ -1,39 +1,295 @@ -overscan:equ 0 -; Double Megadistorter by Gunstick (c) ULM 1990 -; we know! it's long, but it works ! And it's from ULM !!! - - -test equ 10 - +; The Paralax distorter by Gunstick from Unlimited Matricks parallax equ 0 parallay equ 0 bus equ 10 digitest equ 10 +; config: - pea start +def_version equ 10 +d0_for_mcp equ 0 +mcp_adr equ $500 +keyboard set 10 + +test equ 10 + + ifeq def_version + opt d- + org $2500 +keyboard set 0 + endc + + section text + + ifne def_version + pea start(pc) move.w #38,-(sp) trap #14 addq.l #6,sp clr.w -(sp) trap #1 + endc + +start: + lea oldcpu(pc),a0 + move.l sp,(a0)+ + lea my_stack,sp + move.w sr,(a0)+ + move.w #$2700,sr + move.l usp,a1 + move.l a1,(a0)+ + + ifne def_version + moveq #$12,d0 + bsr ikbd_wrt + moveq #$1a,d0 + bsr ikbd_wrt + + move.l $408.w,old_408 + move.l #exit_with_408,$408.w + endc + + lea oldvideo(pc),a0 + move.b $ffff8260.w,(a0)+ + move.b $ffff820a.w,(a0)+ + move.l $ffff8200.w,(a0)+ + movem.l $ffff8240.w,d0-d7 + movem.l d0-d7,(a0) + + movem.l black(pc),d0-d7 + movem.l d0-d7,$ffff8240.w + + lea oldvectors(pc),a0 + move.l $68.w,(a0)+ + move.l $70.w,(a0)+ + move.l $114.w,(a0)+ + move.l $118.w,(a0)+ + move.l $120.w,(a0)+ + move.l $134.w,(a0)+ + move.l #nix,$68.w + move.l #nix,$70.w + move.l #nix,$114.w + ifeq keyboard + move.l #nix,$118.w + endc + move.l #nix,$120.w + move.l #nix,$134.w + + lea oldmfp(pc),a0 + move.b $fffffa07.w,(a0)+ + move.b $fffffa09.w,(a0)+ + move.b $fffffa13.w,(a0)+ + move.b $fffffa15.w,(a0)+ + move.b $fffffa17.w,(a0)+ + move.b $fffffa19.w,(a0)+ + move.b $fffffa1b.w,(a0)+ + move.b $fffffa1d.w,(a0)+ + + bclr #3,$fffffa17.w + clr.b $fffffa07.w + ifeq keyboard + clr.b $fffffa09.w + endc + ifne keyboard + move.b #%01000000,$fffffa09.w + endc + + bsr waitvbl1 + move.b #0,$ffff8260.w + move.b #2,$ffff820a.w + + bsr psginit + + bsr mfp_test + + jmp screen +back: + + lea my_stack,sp + + bsr psginit + + lea oldmfp(pc),a0 + move.b (a0)+,$fffffa07.w + move.b (a0)+,$fffffa09.w + move.b (a0)+,$fffffa13.w + move.b (a0)+,$fffffa15.w + move.b (a0)+,$fffffa17.w + move.b (a0)+,$fffffa19.w + move.b (a0)+,$fffffa1b.w + move.b (a0)+,$fffffa1d.w + + lea oldvectors(pc),a0 + move.l (a0)+,$68.w + move.l (a0)+,$70.w + move.l (a0)+,$114.w + move.l (a0)+,$118.w + move.l (a0)+,$120.w + move.l (a0)+,$134.w + + move.b #2,$ffff820a.w + bsr.s waitvbl1 + move.b #0,$ffff820a.w + bsr.s waitvbl1 + move.b #2,$ffff820a.w + bsr.s waitvbl1 + + lea oldvideo(pc),a0 + move.b (a0)+,$ffff8260.w + move.b (a0)+,$ffff820a.w + move.l (a0)+,$ffff8200.w + movem.l (a0),d0-d7 + movem.l d0-d7,$ffff8240.w + + ifne def_version + moveq #$14,d0 + bsr.s ikbd_wrt + moveq #$8,d0 + bsr.s ikbd_wrt + endc + + lea oldcpu(pc),a0 + move.l (a0)+,sp + move.w (a0)+,sr + move.l (a0)+,a1 + move.l a1,usp + + ifne def_version + move.l old_408(pc),$408.w + + rts + endc + + ifeq def_version + moveq #d0_for_mcp,d0 + jsr mcp_adr.w + endc + +psginit: + moveq #10,d0 + lea $ffff8800.w,a0 +nextinit: + move.b d0,(a0) + move.b #0,2(a0) + dbf d0,nextinit + move.b #7,(a0) + move.b #$7f,2(a0) + move.b #14,(a0) + move.b #$26,2(a0) + rts + +waitvbl1: + move.w #9000,d0 +waitvbl2: + dbf d0,waitvbl2 +waitvbl: + lea $ffff8209.w,a0 + movep.w -8(a0),d0 +waitvbl3: + tst.b (a0) + bne.s waitvbl3 + movep.w -4(a0),d1 + cmp.w d0,d1 + bne.s waitvbl3 + rts + +ikbd_wrt: + lea $fffffc00.w,a0 +ik_wait: + move.b (a0),d1 + btst #1,d1 + beq.s ik_wait + move.b d0,2(a0) + rts + +mfp_test: + move.w #$2700,sr + + bsr.s waitvbl + bsr.s waitvbl + + move.b #0,$fffffa19.w + move.b #255,$fffffa1f.w + move.b #$20,$fffffa07.w + move.b #0,$fffffa13.w + + moveq #30,d1 + lea $ffff8209.w,a0 +check_mfp_s1: + move.b (a0),d0 + beq.s check_mfp_s1 + sub.w d0,d1 + lsl.w d1,d1 + move.b #0,$fffffa0b.w + move.b #1,$fffffa19.w + + moveq #-1,d0 +mfp_test_loop: + dbf d0,mfp_test_loop + + moveq #0,d0 + move.b $fffffa1f.w,d0 + move.b #0,$fffffa19.w + cmp.w #$9b,d0 + ble.s mfp_of_my_st + move.w #-1,mfp_type +mfp_of_my_st: + rts + + ifne def_version + dc.l 'XBRA' + dc.l 'TFSY' +old_408: + dc.l 0 +exit_with_408: + bsr.s exit + move.l old_408(pc),a0 + jmp (a0) + endc + +exit: + movem.l black(pc),d0-d7 + movem.l d0-d7,$ffff8240.w + + bra back + +nix: + rte + +oldcpu: ds.w 4 +oldvideo: ds.w 19 +oldvectors: ds.l 6 +oldmfp: ds.w 5 +mfp_type: ds.w 1 +black: ds.l 16 + + +**************************************************************** + +;overscan:equ 0 +; Double Megadistorter by Gunstick (c) ULM 1990 +; we know! it's long, but it works ! And it's from ULM !!! + + + + ; dc.w $c8*4 ; dc.w 138*4 -; dc.w 195*4 + dc.w 195*4 ; dc.w 167*4 ; dc.w 197*4 ; dc.w 167*4 - dc.w 255*4 +; dc.w 255*4 digisound: ; incbin "includes\telgraph.dmn" ; incbin "includes\jasy75.dmn" -; incbin "includes\senn_l1.dmn" + incbin "includes\senn_l1.dmn" ; incbin "includes\senn_l2.dmn" ; incbin "includes\luna.dmn" ; incbin "includes\luna2.dmn" - incbin "includes\infinity.dmn" +; incbin "includes\infinity.dmn" digiend: even @@ -46,153 +302,6 @@ kotz: dc.l 0 noswreset: rts -start: - move #$2700,sr - bsr waitvbl - - lea $ffff8240.w,a2 - lea oldpal,a3 - - movem.l (a2),d0-d7 - movem.l d0-d7,(a3) - movem.l hwpalette,d0-d7 - movem.l d0-d7,(a2) - - lea $ffff8201.w,a0 - movep.w 0(a0),d0 - lea screenad1,a2 - move.w d0,(a2) - - move.l #screen,d0 - add.l #255,d0 - and.l #$ffff00,d0 - lea screenad2,a2 - move.l d0,(a2) - movea.l d0,a2 - ror.l #8,d0 - movep.w d0,0(a0) - - move.w #0,-(sp) - move.l a2,-(sp) - move.l a2,-(sp) - move.w #5,-(sp) -; trap #14 - lea 12(sp),sp - - move.l screenad2,d0 - sub.l #160*6,d0 - move.l d0,screenadr -; addi.l #8*5-64,screenadr - - movea.l screenad2,a0 - move.l #9999,d0 -clear_loop: - clr.l (a0)+ - dbra d0,clear_loop - - movea.l screenad2,a0 -; movem.l graphic,d6-d7 - movem.l black,d6-d7 - move.w #285,d2 -allline: - ifne overscan - move.w #20,d1 - endc - ifeq overscan - move.w #27,d1 - endc - -alles: - move.l d6,(a0)+ - move.l d7,(a0)+ - dbra d1,alles - ifeq overscan - addq.l #6,a0 - endc - - dbra d2,allline - - pea message - move.w #9,-(sp) -; trap #1 - addq.w #6,sp - - bsr psginit - - lea oldres,a0 - move.b $ffff8260.w,(a0) - bsr waitvbl - move.b #0,$ffff8260.w - - move.b #18,$fffffc02.w - bsr waitvbl - move.b #26,$fffffc02.w - - move.l usp,a0 - move.l a0,savusp - bsr screen2 - move.l savusp,a0 - move.l a0,usp - - move.b #20,$fffffc02.w - bsr.s waitvbl - move.b #8,$fffffc02.w - - bsr.s waitvbl - move.b #0,$ffff820a.w - bsr.s waitvbl - move.b #2,$ffff820a.w - move.b oldres,$ffff8260.w - lea $ffff8201.w,a0 - moveq #0,d0 - move.w screenad1,d0 - movep.w d0,0(a0) - lsl.l #8,d0 - - move.w #0,-(sp) - move.l d0,-(sp) - move.l d0,-(sp) - move.w #5,-(sp) -; trap #14 - lea 12(sp),sp - - bsr.s psginit - - lea oldpal,a0 - lea $ffff8240.w,a1 - movem.l (a0),d0-d7 - movem.l d0-d7,(a1) - - bsr.s waitvbl - move #$2300,sr - - rts -savusp: ds.l 1 - -waitvbl: - - move.b $ffff8203.w,d0 - lsl.w #8,d0 - lea $ffff8207.w,a0 -no_vbl: - movep.w 0(a0),d1 - cmp.w d0,d1 - bne.s no_vbl - - rts - -psginit: - lea psginittab,a0 -nextinit: - move.b (a0)+,d0 - cmp.b #$ff,d0 - beq.s initend - move.b (a0)+,d1 - move.b d0,$ffff8800.w - move.b d1,$ffff8802.w - bra.s nextinit -initend: - rts ;-------------------------------------------------------- @@ -301,16 +410,45 @@ digi2 MACRO movep.l d6,$ffff8800-512-downthere(a7) ;~7 ENDM + + +screen: + lea bss_start,a0 + lea bss_end,a1 + movem.l black,d1-d7/a2-a6 +clear_loop: + movem.l d1-d7/a2-a6,(a0) + movem.l d1-d7/a2-a6,12*4(a0) + movem.l d1-d7/a2-a6,24*4(a0) + lea 36*4(a0),a0 + cmp.l a0,a1 + bpl.s clear_loop + + move.l #screenmem,d0 + add.l #255,d0 + and.l #$ffff00,d0 + move.l d0,screenad + ror.l #8,d0 + lea $ffff8201.w,a0 + movep.w d0,(a0) + + lea my_stack,sp + jsr waitvbl + + + -screen2: ;free d0 d1 d2 d3 d4 d5 d6 d7 a0 a1 a2 -- -- -- a7 usp move sr,-(sp) move #$2700,sr move.l sp,stack -; clr.b lowbyte + tst.w mfp_type + beq.s mfp_is_ok + add.w #55*2,other_mfp +mfp_is_ok: ifeq bus moveq #57,d0 lea endprg,a0 @@ -356,9 +494,10 @@ initdist: move.l #mwavetab,mnextcurv move.l mwavetab,mactcurv move.l #scrnadrs,nextscrn - move.l #screen-230*20,cpybufdest + move.l #ecran-230*20,cpybufdest -; bra kaka + + bra kaka lupo: @@ -448,9 +587,6 @@ kaka: ;******************************************************** lea screenadr,a2 -; move.b lowbyte,3(a2) - -; bsr waitvbl ;lower border move.b $ffff8203.w,d0 lsl.w #8,d0 @@ -509,7 +645,7 @@ __no_vbl: movem.l d0-d6/a0,$ffff8240.w ;blaf equ 174-55 -blaf equ 174+4 +blaf equ 174 move.w #1500-30,d0 opentopwait: dbra d0,opentopwait @@ -526,7 +662,10 @@ loop: move.l (a6)+,d1 ;~3 movep.l d1,$ffff8800-512-downthere(a7) ;~7 endc - dcb $4e71,blaf-4-1-20 +other_mfp: equ *+2 + bra my_mfp +my_mfp: + dcb $4e71,blaf-4-1-20-3 move.w d7,digswitch movem.l hwpalette,d2-d7/a1-a2 move.l a1,usp @@ -659,7 +798,7 @@ cont4: bne scrnok ;~12 lea scrnadrs-nextscrn(a2),a0 ;~12 move.l (a0)+,d0 ;~12 -; move.l #screen-(20*230)+160*6,cpybufdest-nextscrn(a2);~24 +; move.l #ecran-(20*230)+160*6,cpybufdest-nextscrn(a2);~24 dcb $4e71,6 _scrnok: move.l d0,logbase-nextscrn(a2) ;~20 @@ -2614,11 +2753,11 @@ endscrollcpy: ***************************************** - move.b #0,$fffffa19.w ;stop timer - move.b #80,$fffffa1f.w ;244 - move.b #32,$fffffa07.w - move.b #0,$fffffa0b.w ;clr pending - move.b #2,$fffffa19.w +; move.b #0,$fffffa19.w ;stop timer +; move.b #80,$fffffa1f.w ;244 +; move.b #32,$fffffa07.w +; move.b #0,$fffffa0b.w ;clr pending +; move.b #2,$fffffa19.w @@ -2751,7 +2890,7 @@ bbb move.l a0,cpybufdest ;position to write during next vbl cmp.l #scrnadrs+4,nextscrn bne.s notreset - move.l #screen-(15*230)+160*6,cpybufdest + move.l #ecran-(15*230)+160*6,cpybufdest notreset: ;********************************************************** @@ -2775,21 +2914,11 @@ notr: not5: cmpi.b #110,d0 bne.s not2 - ifeq overscan addi.l #-230,codmod+2 - endc - ifne overscan - addi.l #-160,codmod+2 - endc not2: cmpi.b #104,d0 bne.s not8 - ifeq overscan addi.l #230,codmod+2 - endc - ifne overscan - addi.l #160,codmod+2 - endc not8: cmpi.b #108,d0 bne.s not6 @@ -2817,7 +2946,7 @@ notu: cmpi.b #57,d0 bne.s no_key -exit: +myexit: ;restore digisound move.w #(256+512/4)-1,d0 lea domino,a0 @@ -2827,10 +2956,7 @@ restdigi: dbf d0,restdigi - - movea.l stack,sp - move (sp)+,sr - rts + jmp exit no_key: lea screenadr,a3 @@ -2946,7 +3072,7 @@ mbounceok: digiok: digi1 -; ifeq test + lea predigi,a0 move.l a0,a1 moveq #1,d0 @@ -3010,8 +3136,7 @@ calcpredigi: dcb $4e71,70 move.l a6,digiptr -; endc - dcb $4e71,150 + move.l a1,a6 ifeq digitest move.w #$777,$ffff8240.w @@ -3038,7 +3163,7 @@ no_int: ;-------------------------------------------------------------- - bsr waitvbl + jsr waitvbl movem.l black,d0-d7 movem.l d0-d7,$ffff8240.w @@ -6019,63 +6144,63 @@ hwbouncetab: dc.w -1 scrbase equ 0 scrnadrs: - dc.l screen-scrbase*230+64400*0 - dc.l screen-scrbase*230+64400*1 - dc.l screen-scrbase*230+64400*2 - dc.l screen-scrbase*230+64400*3 - dc.l screen-scrbase*230+64400*0+230*20 - dc.l screen-scrbase*230+64400*1+230*20 - dc.l screen-scrbase*230+64400*2+230*20 - dc.l screen-scrbase*230+64400*3+230*20 - dc.l screen-scrbase*230+64400*0+230*40 - dc.l screen-scrbase*230+64400*1+230*40 - dc.l screen-scrbase*230+64400*2+230*40 - dc.l screen-scrbase*230+64400*3+230*40 - dc.l screen-scrbase*230+64400*0+230*60 - dc.l screen-scrbase*230+64400*1+230*60 - dc.l screen-scrbase*230+64400*2+230*60 - dc.l screen-scrbase*230+64400*3+230*60 - dc.l screen-scrbase*230+64400*0+230*80 - dc.l screen-scrbase*230+64400*1+230*80 - dc.l screen-scrbase*230+64400*2+230*80 - dc.l screen-scrbase*230+64400*3+230*80 - dc.l screen-scrbase*230+64400*0+230*100 - dc.l screen-scrbase*230+64400*1+230*100 - dc.l screen-scrbase*230+64400*2+230*100 - dc.l screen-scrbase*230+64400*3+230*100 - dc.l screen-scrbase*230+64400*0+230*120 - dc.l screen-scrbase*230+64400*1+230*120 - dc.l screen-scrbase*230+64400*2+230*120 - dc.l screen-scrbase*230+64400*3+230*120 - dc.l screen-scrbase*230+64400*0+230*140 - dc.l screen-scrbase*230+64400*1+230*140 - dc.l screen-scrbase*230+64400*2+230*140 - dc.l screen-scrbase*230+64400*3+230*140 - dc.l screen-scrbase*230+64400*0+230*160 - dc.l screen-scrbase*230+64400*1+230*160 - dc.l screen-scrbase*230+64400*2+230*160 - dc.l screen-scrbase*230+64400*3+230*160 - dc.l screen-scrbase*230+64400*0+230*180 - dc.l screen-scrbase*230+64400*1+230*180 - dc.l screen-scrbase*230+64400*2+230*180 - dc.l screen-scrbase*230+64400*3+230*180 - dc.l screen-scrbase*230+64400*0+230*200 - dc.l screen-scrbase*230+64400*1+230*200 - dc.l screen-scrbase*230+64400*2+230*200 - dc.l screen-scrbase*230+64400*3+230*200 - dc.l screen-scrbase*230+64400*0+230*220 - dc.l screen-scrbase*230+64400*1+230*220 - dc.l screen-scrbase*230+64400*2+230*220 - dc.l screen-scrbase*230+64400*3+230*220 - dc.l screen-scrbase*230+64400*0+230*240 - dc.l screen-scrbase*230+64400*1+230*240 - dc.l screen-scrbase*230+64400*2+230*240 - dc.l screen-scrbase*230+64400*3+230*240 - dc.l screen-scrbase*230+64400*0+230*260 - dc.l screen-scrbase*230+64400*1+230*260 - dc.l screen-scrbase*230+64400*2+230*260 -; dc.l screen-scrbase*230+64400*3+230*260 -; dc.l screen-scrbase*230+64400*0+230*280 + dc.l ecran-scrbase*230+64400*0 + dc.l ecran-scrbase*230+64400*1 + dc.l ecran-scrbase*230+64400*2 + dc.l ecran-scrbase*230+64400*3 + dc.l ecran-scrbase*230+64400*0+230*20 + dc.l ecran-scrbase*230+64400*1+230*20 + dc.l ecran-scrbase*230+64400*2+230*20 + dc.l ecran-scrbase*230+64400*3+230*20 + dc.l ecran-scrbase*230+64400*0+230*40 + dc.l ecran-scrbase*230+64400*1+230*40 + dc.l ecran-scrbase*230+64400*2+230*40 + dc.l ecran-scrbase*230+64400*3+230*40 + dc.l ecran-scrbase*230+64400*0+230*60 + dc.l ecran-scrbase*230+64400*1+230*60 + dc.l ecran-scrbase*230+64400*2+230*60 + dc.l ecran-scrbase*230+64400*3+230*60 + dc.l ecran-scrbase*230+64400*0+230*80 + dc.l ecran-scrbase*230+64400*1+230*80 + dc.l ecran-scrbase*230+64400*2+230*80 + dc.l ecran-scrbase*230+64400*3+230*80 + dc.l ecran-scrbase*230+64400*0+230*100 + dc.l ecran-scrbase*230+64400*1+230*100 + dc.l ecran-scrbase*230+64400*2+230*100 + dc.l ecran-scrbase*230+64400*3+230*100 + dc.l ecran-scrbase*230+64400*0+230*120 + dc.l ecran-scrbase*230+64400*1+230*120 + dc.l ecran-scrbase*230+64400*2+230*120 + dc.l ecran-scrbase*230+64400*3+230*120 + dc.l ecran-scrbase*230+64400*0+230*140 + dc.l ecran-scrbase*230+64400*1+230*140 + dc.l ecran-scrbase*230+64400*2+230*140 + dc.l ecran-scrbase*230+64400*3+230*140 + dc.l ecran-scrbase*230+64400*0+230*160 + dc.l ecran-scrbase*230+64400*1+230*160 + dc.l ecran-scrbase*230+64400*2+230*160 + dc.l ecran-scrbase*230+64400*3+230*160 + dc.l ecran-scrbase*230+64400*0+230*180 + dc.l ecran-scrbase*230+64400*1+230*180 + dc.l ecran-scrbase*230+64400*2+230*180 + dc.l ecran-scrbase*230+64400*3+230*180 + dc.l ecran-scrbase*230+64400*0+230*200 + dc.l ecran-scrbase*230+64400*1+230*200 + dc.l ecran-scrbase*230+64400*2+230*200 + dc.l ecran-scrbase*230+64400*3+230*200 + dc.l ecran-scrbase*230+64400*0+230*220 + dc.l ecran-scrbase*230+64400*1+230*220 + dc.l ecran-scrbase*230+64400*2+230*220 + dc.l ecran-scrbase*230+64400*3+230*220 + dc.l ecran-scrbase*230+64400*0+230*240 + dc.l ecran-scrbase*230+64400*1+230*240 + dc.l ecran-scrbase*230+64400*2+230*240 + dc.l ecran-scrbase*230+64400*3+230*240 + dc.l ecran-scrbase*230+64400*0+230*260 + dc.l ecran-scrbase*230+64400*1+230*260 + dc.l ecran-scrbase*230+64400*2+230*260 +; dc.l ecran-scrbase*230+64400*3+230*260 +; dc.l ecran-scrbase*230+64400*0+230*280 dc.l 0 openlowtab: ; dc.b 2,2,2,2,2,2 @@ -6108,10 +6233,10 @@ wavetab: dc.l wordschief dc.l wordschief dc.l byteschief - dc.l nix + dc.l _nix dc.l wordhinher - dc.l nix - dc.l nix + dc.l _nix + dc.l _nix dc.l hacker,hacker,hacker dc.l dreieck dc.l dreieck @@ -6271,7 +6396,7 @@ byteschief: dc.w 1,1,1,1,1,1,1,1 dc.w 1,1,1,1,1,1,1,1,128 hops1: dc.w 1 -nix: dc.w 0 +_nix: dc.w 0 dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 @@ -6412,8 +6537,7 @@ space equ 87 dc.b g,g+1,o,o+1,t,t+1,space,t,t+1,h,h+1,e,e+1,space,n,n+1,a,a+1,m,m+1,e,e+1,space,r,r+1,i,i+1,g,g+1,h,h+1,t,t+1,fz,fz+1,kz,kz+1,space dc.b e,e+1,n,n+1,o,o+1,u,u+1,g,g+1,h,h+1,space,f,f+1,o,o+1,r,r+1,space,n,n+1,o,o+1,w,w+1,space,space,space,space dc.b b,b+1,y,y+1,e,e+1,space,az,az+1 - - dc.b space,space,space + dc.b space scrolltext: ; dc.b zero,zero,zero,zero,zero,zero,zero,zero,0 dc.b space,space,space,h,h+1,e,e+1,l,l+1,l,l+1,o,o+1,space,space @@ -6446,7 +6570,6 @@ scrolltext: dc.b g,g+1,o,o+1,t,t+1,space,t,t+1,h,h+1,e,e+1,space,n,n+1,a,a+1,m,m+1,e,e+1,space,r,r+1,i,i+1,g,g+1,h,h+1,t,t+1,fz,fz+1,kz,kz+1,space dc.b e,e+1,n,n+1,o,o+1,u,u+1,g,g+1,h,h+1,space,f,f+1,o,o+1,r,r+1,space,n,n+1,o,o+1,w,w+1,space,space,space,space dc.b b,b+1,y,y+1,e,e+1,space,az,az+1 - dc.b space,space,space dc.b 0 dc.b 87,87 @@ -6488,10 +6611,16 @@ hwscrolldat: incbin "includes\hwscroll.dat" even -black: - ds.l 8 section bss + +bss_start: ;here starts the bss + +screenad: ds.l 1 + + ds.l 20 +my_stack: + stack: ds.l 1 oldpal: ds.w 16 oldres: ds.w 1 @@ -6558,15 +6687,13 @@ linebuffend: ds.l 2*26*16+1+1+1 endr +screenmem: ds.w 230*6 -screen: +ecran: rept 5 ds.l 15700 endr endprg: +bss_end: ;here ends the bss end - - - -