From a3bb82c6fd8029416475874888218576ce5538ac Mon Sep 17 00:00:00 2001 From: Georges Kesseler Date: Sat, 18 Feb 2012 23:32:41 +0100 Subject: [PATCH] parallax distorter. It was first meant to be an independant distorter on 2 playfields, only later it became the parallax distorter. This version features just hardware scroller with overscan. Use numpad to move around. --- 3DFONT.NEO | Bin 0 -> 32128 bytes DESKTOP.INF | 21 + FONT.BIN | Bin 0 -> 22272 bytes FULLMEGA.S | 509 +++++++++++++++++ FULLSCRN.S | 353 ++++++++++++ GENST2.INF | Bin 0 -> 30 bytes GENST2.PRG | Bin 0 -> 51056 bytes HWSCROLL.DAT | Bin 0 -> 3072 bytes MONST2.PRG | Bin 0 -> 23062 bytes PARADIST.S | 1476 ++++++++++++++++++++++++++++++++++++++++++++++++++ SPRITER.PRG | Bin 0 -> 11565 bytes 11 files changed, 2359 insertions(+) create mode 100644 3DFONT.NEO create mode 100644 DESKTOP.INF create mode 100644 FONT.BIN create mode 100644 FULLMEGA.S create mode 100644 FULLSCRN.S create mode 100644 GENST2.INF create mode 100644 GENST2.PRG create mode 100644 HWSCROLL.DAT create mode 100644 MONST2.PRG create mode 100644 PARADIST.S create mode 100644 SPRITER.PRG diff --git a/3DFONT.NEO b/3DFONT.NEO new file mode 100644 index 0000000000000000000000000000000000000000..e3abb5786f8322eccbaa2112b80f83f16dd9624e GIT binary patch literal 32128 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 W9qYrP|6bWw`d`2Fzrl|U+5ZKa^4|IY literal 0 HcmV?d00001 diff --git a/DESKTOP.INF b/DESKTOP.INF new file mode 100644 index 0000000..8e7d383 --- /dev/null +++ b/DESKTOP.INF @@ -0,0 +1,21 @@ +#a000000 +#b000000 +#c7770007000600070055200505552220770557075055507703111103 +#d +#E FB 02 +#W 00 00 20 01 15 17 09 D:\*.*@ +#W 00 00 0A 01 15 17 00 @ +#W 00 00 0E 09 2A 0B 00 @ +#W 00 00 0F 0A 2A 0B 00 @ +#M 00 02 00 FF D DISKSTATION@ `@ +#M 00 00 00 FF A DISKSTATION@ @ +#M 00 01 00 FF B DISKSTATION@ @ +#T 00 03 02 FF PAPIERKORB@ @ +#F FF 04 @ *.*@ +#D FF 01 @ *.*@ +#G 03 FF *.PRG@ @ +#G 03 FF *.APP@ @ +#F 03 04 *.TOS@ @ +#P 03 04 *.TTP@ @ +#G 03 04 GENST2.PRG@ *.S@ + \ No newline at end of file diff --git a/FONT.BIN b/FONT.BIN new file mode 100644 index 0000000000000000000000000000000000000000..d589f4ec696842e4752c0e7a8b4e1cc5b3d8fe8c GIT binary patch literal 22272 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 A9smFU literal 0 HcmV?d00001 diff --git a/FULLMEGA.S b/FULLMEGA.S new file mode 100644 index 0000000..def5dc4 --- /dev/null +++ b/FULLMEGA.S @@ -0,0 +1,509 @@ + +; screen # by The Fate of ULM (c) 1989 and for all eternity... + +demo: equ 10 ;demo = 0 => assemble for demo + ;demo <> 0 => assemble for devpack +test: equ 10 + + ifne demo + +;please leave all section indications unchanged... +;simple loader to get into supervisor-mode +;this part can be removed when started from bootsector +go: + move.l y-x+$10000,d0 ;length + move.l $80000-(y-x+$10000),d0 ;memory left on ST with half-a-meg + + pea start + move.w #38,-(sp) + trap #14 + addq.l #6,sp + + clr.w -(sp) + trap #1 + +start: + move sr,in_oldsr + move #$2700,sr + + move.b $ffff8260.w,in_oldres + bsr waitvbl + move.b #0,$ffff8260.w + + movem.l $ffff8240.w,d0-d7 + movem.l d0-d7,in_oldpal + movem.l black,d0-d7 + movem.l d0-d7,$ffff8240.w + + lea $ffff8201.w,a0 + movep.w 0(a0),d0 + move.w d0,in_screenad + + move.b #26,$fffffc02.w + bsr waitvbl + move.b #18,$fffffc02.w + + bsr in_psginit + + move.l $0604.w,in_old604 + move.l sp,$0604.w + move usp,a0 + move.l a0,in_oldusp + move.l sp,in_oldsp + move.l $0600.w,in_old600 + move.l #back,$0600.w +;here we go... to the real screen... + jmp screen +back: + move.l in_old600,$0600.w + move.l in_old604,$0604.w + movea.l in_oldusp,a0 + move a0,usp + movea.l in_oldsp,sp + + movem.l black,d0-d7 + movem.l d0-d7,$ffff8240.w + + move.b #2,$ffff820a.w + bsr waitvbl + move.b #0,$ffff820a.w + bsr waitvbl + move.b #2,$ffff820a.w + + movem.l in_oldpal,d0-d7 + movem.l d0-d7,$ffff8240.w + + move.b in_oldres,$ffff8260.w + lea $ffff8201.w,a0 + move.w in_screenad,d0 + movep.w d0,0(a0) + + bsr.s in_psginit + + bsr waitvbl + move.b #20,$fffffc02.w + bsr waitvbl + move.b #8,$fffffc02.w + + move in_oldsr,sr + + rts + +in_psginit: + lea in_psginittab,a0 +in_nextinit: + move.b (a0)+,d0 + cmp.b #$ff,d0 + beq.s in_initend + move.b (a0)+,d1 + move.b d0,$ffff8800.w + move.b d1,$ffff8802.w + bra.s in_nextinit +in_initend: + rts + +in_psginittab: + dc.b 0,$ff,1,$ff,2,$ff,3,$ff,4,$ff,5,$ff,6,0 + dc.b 7,$7f,8,7,9,7,10,7,$ff,0 + even + +in_screenad: ds.w 1 +in_oldpal: ds.l 16 +in_oldres: ds.w 1 +in_old600: ds.l 1 +in_old604: ds.l 1 +in_oldsr: ds.w 1 +in_oldsp: ds.l 1 +in_oldusp: ds.l 1 + endc + +; +; systemadresses: $600.w = return address (see exit) +; $604.w = stackpointer (copy to sp if needed +; ex. move.l $604.w,sp) +; +; from here on, no stackpointer is present, if you need one, just +; get the address of space for stack in $604.w (see also sys. $604.w) +; +; you can use all registers, even usp (move an,usp or move usp,an) +; +; sr is set to $2700 and must (!!!!) be $2700 when returning to main menu +; +; waitvbl can be used to wait for the end of the displayed(!!!!) screen +; normal mode and overscan (with opened lowr border...) +; waitvbl uses d0-d1/a0 +; + +;this part is the real screen... + + ifeq demo + org $010000 + endc + +x: +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 + cmpa.l a0,a1 + bpl.s clear_loop + + move.l #screenmem,d0 + add.l #255,d0 + and.l #$ffff00,d0 + move.l d0,screenad1 + ror.l #8,d0 + lea $ffff8201.w,a0 + movep.w d0,0(a0) + + move.l screenad1,a6 + movem.l black,d1-a2 + movem.l d1-a2,(a6) + movem.l d1-a2,40(a6) + movem.l d1-a2,80(a6) + movem.l d1-a2,120(a6) + lea 160(a6),a6 + lea graphic,a5 + movem.l (a5),d1-d2 + movem.l (a5),d3-d4 + movem.l (a5),d5-d6 + movem.l (a5),d7-a0 + movem.l (a5),a1-a2 + move.w #290,d0 +graphiccop: + movem.l d1-a2,(a6) + movem.l d1-a2,40(a6) + movem.l d1-a2,80(a6) + movem.l d1-a2,120(a6) + movem.l d1-a2,160(a6) + movem.l d1-a2,200(a6) + lea 230(a6),a6 + dbra d0,graphiccop + + lea farbtab,a0 + lea hsin,a1 + moveq #0,d1 + move.w #599,d0 +fill_loop: + move.b (a1)+,d1 + move.w d1,(a0)+ + cmp.l #hsinend,a1 + bne.s fill_ok + lea hsin,a1 +fill_ok: + dbf d0,fill_loop + move.l a1,aktinhsin + + movea.l $0604.w,sp + +testl: + bsr waitvbl + + lea $ffff8209.w,a0 + moveq #0,d0 + moveq #20,d2 +sync2: + move.b (a0),d0 + beq.s sync2 + sub.w d0,d2 + lsl.l d2,d2 + + bsr waitvbl + + move.w #1500,d0 +wait_border: + dbf d0,wait_border + + dcb $4e71,188+6 + +loop: + lea $ffff8260.w,sp + move.b #0,$ffff820a.w + lea coltab,a2 +codmodvsin equ *+2 + add.w #0,a2 + lea farbtab,a1 + move.b #2,$ffff820a.w + +codmodhsin equ *+2 + add.w #0,a1 + btst #6,$fffffa0d.w + bne exit + + lea $ffff8209.w,a0 + moveq #0,d0 + moveq #30,d2 +sync: + move.b (a0),d0 + beq.s sync + sub.w d0,d2 + lsl.l d2,d2 + + dcb $4e71,24+24+1 + move.w (a1)+,d2 + movem.l 0(a2,d2.w),d2-d5 + + moveq #48,d0 +lo0001: + dcb $4e71,5 + move.b #1,$ffff8260.w + move.b #0,$ffff8260.w + movem.l d2-d5,$ffff8250.w + move.b #2,(sp) + move.b #0,(sp) + dcb $4e71,46+24 + lea 32(a2),a2 + move.w (a1)+,d2 + movem.l 0(a2,d2.w),d2-d5 + move.b #0,$ffff820a.w + move.b #2,$ffff820a.w + dbf d0,lo0001 + + dcb $4e71,4 + + move.b #1,$ffff8260.w + move.b #0,$ffff8260.w + movem.l d2-d5,$ffff8250.w + move.b #2,(sp) + move.b #0,(sp) + dcb $4e71,46+24 + lea 32(a2),a2 + move.w (a1)+,d2 + movem.l 0(a2,d2.w),d2-d5 + move.b #0,$ffff820a.w + move.b #2,$ffff820a.w + dcb $4e71,1 + + move.w #110+50,d0 +lo0004: + dcb $4e71,5 + move.b #1,$ffff8260.w + move.b #0,$ffff8260.w + movem.l d2-d5,$ffff8250.w + move.b #2,(sp) + move.b #0,(sp) + dcb $4e71,46+24 + lea 32(a2),a2 + move.w (a1)+,d2 + movem.l 0(a2,d2.w),d2-d5 + move.b #0,$ffff820a.w + move.b #2,$ffff820a.w + dbf d0,lo0004 + + dcb $4e71,4 + move.b #1,$ffff8260.w + move.b #0,$ffff8260.w + movem.l d2-d5,$ffff8250.w + move.b #2,(sp) + move.b #0,(sp) + dcb $4e71,59-11+24 + move.w (a1)+,d2 + movem.l 32(a2,d2.w),d2-d5 + move.b #0,$ffff820a.w + lea 64(a2),a2 + dcb $4e71,10 + move.b #1,$ffff8260.w + move.b #0,$ffff8260.w + movem.l d2-d5,$ffff8250.w + move.b #2,(sp) + move.b #0,(sp) + move.b #2,$ffff820a.w + + dcb $4e71,44+24 + move.w (a1)+,d2 + movem.l 0(a2,d2.w),d2-d5 + move.b #0,$ffff820a.w + move.b #2,$ffff820a.w + + dcb $4e71,2 + moveq #13,d0 +lo0002: + dcb $4e71,5 + move.b #1,$ffff8260.w + move.b #0,$ffff8260.w + movem.l d2-d5,$ffff8250.w + move.b #2,(sp) + move.b #0,(sp) + dcb $4e71,46+24 + lea 32(a2),a2 + move.w (a1)+,d2 + movem.l 0(a2,d2.w),d2-d5 + move.b #0,$ffff820a.w + move.b #2,$ffff820a.w + dbf d0,lo0002 + + dcb $4e71,4 + move.b #1,$ffff8260.w + move.b #0,$ffff8260.w + movem.l d2-d5,$ffff8250.w + move.b #2,(sp) + move.b #0,(sp) + dcb $4e71,48+24 + move.w (a1)+,d2 + movem.l 32(a2,d2.w),d2-d5 + move.b #0,$ffff820a.w + lea 64(a2),a2 + dcb $4e71,10 + move.b #1,$ffff8260.w + move.b #0,$ffff8260.w + movem.l d2-d5,$ffff8250.w + move.b #2,(sp) + move.b #0,(sp) + move.b #2,$ffff820a.w + + dcb $4e71,44+24 + move.w (a1)+,d2 + movem.l 0(a2,d2.w),d2-d5 + move.b #0,$ffff820a.w + move.b #2,$ffff820a.w + + dcb $4e71,2 + moveq #43,d0 +lo0003: + dcb $4e71,5 + move.b #1,$ffff8260.w + move.b #0,$ffff8260.w + movem.l d2-d5,$ffff8250.w + move.b #2,(sp) + move.b #0,(sp) + dcb $4e71,46+24 + lea 32(a2),a2 + move.w (a1)+,d2 + movem.l 0(a2,d2.w),d2-d5 + move.b #0,$ffff820a.w + move.b #2,$ffff820a.w + dbf d0,lo0003 + + dcb $4e71,4 + move.b #1,$ffff8260.w + move.b #0,$ffff8260.w + + move.w #137,d0 +wait_border3: + dcb $4e71,32 + dbf d0,wait_border3 + + dcb $4e71,25 + + move.w pointdist,d0 + move.w d0,d1 + addq.w #4,d0 + cmp.w #300*4,d0 + bne.s pointdis_ok + moveq #0,d0 +pointdis_ok: + move.w d0,pointdist + move.w d0,codmodhsin + + moveq #0,d0 + move.l aktinhsin,a0 + move.b (a0)+,d0 + swap d0 + move.b (a0)+,d0 + cmp.l #hsinend+2,a0 + bne.s hsin_ok + lea hsin,a0 + move.b (a0)+,d0 + swap d0 + move.b (a0)+,d0 + bra.s hsin_nok +hsin_ok: + dcb $4e71,11 +hsin_nok: + move.l a0,aktinhsin + lea farbtab,a0 + add.w d1,a0 + move.l d0,(a0) + move.l d0,1200(a0) + + move.l aktinvsin,a0 + move.w (a0)+,d0 + move.w (a0)+,d1 + cmp.l #vsinend+4,a0 + bne.s vsin_ok + lea vsin,a0 + move.w (a0)+,d0 + move.w (a0)+,d1 + bra.s vsin_nok +vsin_ok: + dcb $4e71,10 +vsin_nok: + move.w d0,codmodvsin + move.l a0,aktinvsin + add.w d1,codmodhsin + + move.l $604.w,sp + + move.w #1911,$ffff8240.w + move.w #$00,$ffff8240.w + + dcb $4e71,16 + + bra loop + +exit: + movea.l $0600.w,a0 + jmp (a0) + +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 + +;here starts the data section + +black: + dc.l 0,0,0,0,0,0,0,0 + dc.l 0,0,0,0,0,0,0,0 +graphic: + dc.l %01010101010101010011001100110011 + dc.l %00001111000011111111111111111111 +pal: + dc.w $000,$221,$332,$443,$554,$665,$110,$020 +hsin: + incbin 'c:\includes\hsin.bin' +hsinend: +aktinvsin: + dc.l vsin +vsin: + incbin 'c:\includes\vsin.bin' +vsinend: + +coltab: + incbin 'c:\includes\coltab.bin' + incbin 'c:\includes\coltab.bin' + incbin 'c:\includes\coltab.bin' + incbin 'c:\includes\coltab.bin' + incbin 'c:\includes\coltab.bin' + incbin 'c:\includes\coltab.bin' + +;end of data section + + section bss +;please leave all section indications unchanged... +bss_start: ;here starts the bss + +stack: ds.l 1 +screenad1: ds.l 1 +pointdist: ds.w 1 +aktinhsin: ds.l 1 +farbtab: ds.l 600 + +screenmem: + ds.l $2000 + ds.l $2000 + ds.l $500 +bss_end: ;here ends the bss +y: + end + diff --git a/FULLSCRN.S b/FULLSCRN.S new file mode 100644 index 0000000..a6ced18 --- /dev/null +++ b/FULLSCRN.S @@ -0,0 +1,353 @@ + +; screen # by The Fate of ULM (c) 1989 and for all eternity... + +demo: equ 10 ;demo = 0 => assemble for demo + ;demo <> 0 => assemble for devpack +test: equ 10 + + ifne demo + +;please leave all section indications unchanged... +;simple loader to get into supervisor-mode +;this part can be removed when started from bootsector +x: + pea start + move.w #38,-(sp) + trap #14 + addq.l #6,sp + + clr.w -(sp) + trap #1 + +start: + move sr,in_oldsr + move #$2700,sr + + move.b $ffff8260.w,in_oldres + bsr waitvbl + move.b #0,$ffff8260.w + + movem.l $ffff8240.w,d0-d7 + movem.l d0-d7,in_oldpal + movem.l black,d0-d7 + movem.l d0-d7,$ffff8240.w + + lea $ffff8201.w,a0 + movep.w 0(a0),d0 + move.w d0,in_screenad + + move.b #18,$fffffc02.w + bsr waitvbl + move.b #26,$fffffc02.w + + bsr in_psginit + + move.l $0604.w,in_old604 + move.l sp,$0604.w + move usp,a0 + move.l a0,in_oldusp + move.l sp,in_oldsp + move.l $0600.w,in_old600 + move.l #back,$0600.w +;here we go... to the real screen... + jmp screen +back: + move.l in_old600,$0600.w + move.l in_old604,$0604.w + movea.l in_oldusp,a0 + move a0,usp + movea.l in_oldsp,sp + + movem.l black,d0-d7 + movem.l d0-d7,$ffff8240.w + + move.b #2,$ffff820a.w + bsr waitvbl + move.b #0,$ffff820a.w + bsr waitvbl + move.b #2,$ffff820a.w + + movem.l in_oldpal,d0-d7 + movem.l d0-d7,$ffff8240.w + + move.b in_oldres,$ffff8260.w + lea $ffff8201.w,a0 + move.w in_screenad,d0 + movep.w d0,0(a0) + + bsr.s in_psginit + + move.b #20,$fffffc02.w + bsr waitvbl + move.b #8,$fffffc02.w + + move in_oldsr,sr + + rts + +in_psginit: + lea in_psginittab,a0 +in_nextinit: + move.b (a0)+,d0 + cmp.b #$ff,d0 + beq.s in_initend + move.b (a0)+,d1 + move.b d0,$ffff8800.w + move.b d1,$ffff8802.w + bra.s in_nextinit +in_initend: + rts + +in_psginittab: + dc.b 0,$ff,1,$ff,2,$ff,3,$ff,4,$ff,5,$ff,6,0 + dc.b 7,$7f,8,7,9,7,10,7,$ff,0 + even + +in_screenad: ds.w 1 +in_oldpal: ds.l 16 +in_oldres: ds.w 1 +in_old600: ds.l 1 +in_old604: ds.l 1 +in_oldsr: ds.w 1 +in_oldsp: ds.l 1 +in_oldusp: ds.l 1 + endc + +; +; systemadresses: $600.w = return address (see exit) +; $604.w = stackpointer (copy to sp if needed +; ex. move.l $604.w,sp) +; +; from here on, no stackpointer is present, if you need one, just +; get the address of space for stack in $604.w (see also sys. $604.w) +; +; you can use all registers, even usp (move an,usp or move usp,an) +; +; sr is set to $2700 and must (!!!!) be $2700 when returning to main menu +; +; waitvbl can be used to wait for the end of the displayed(!!!!) screen +; normal mode and overscan (with opened lowr border...) +; waitvbl uses d0-d1/a0 +; + +;this part is the real screen... + + ifeq demo + org $010000 + endc + +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 + cmpa.l a0,a1 + bpl.s clear_loop + + move.l #screenmem,d0 + add.l #255,d0 + and.l #$ffff00,d0 + move.l d0,screenad1 + ror.l #8,d0 + lea $ffff8201.w,a0 + movep.w d0,0(a0) + + lea graphic,a6 + movem.l (a6),d1-d2 + movem.l (a6),d3-d4 + movem.l (a6),d5-d6 + movem.l (a6),d7-a0 + movem.l (a6),a1-a2 + movea.l screenad1,a6 + lea 160(a6),a6 + move.w #299,d0 +graphiccop: + movem.l d1-a2,(a6) + movem.l d1-a2,40(a6) + movem.l d1-a2,80(a6) + movem.l d1-a2,120(a6) + movem.l d1-a2,160(a6) + movem.l d1-a2,200(a6) + lea 230(a6),a6 + dbra d0,graphiccop + + movem.l pal,d0-d3 + movem.l d0-d3,$ffff8240+4*4.w + + movea.l $0604.w,sp + +testl: + bsr waitvbl + + lea $ffff8209.w,a0 + moveq #0,d0 + moveq #20,d2 +sync2: + move.b (a0),d0 + beq.s sync2 + sub.w d0,d2 + lsl.l d2,d2 + + bsr waitvbl + + move.w #1500,d0 +wait_border: + dbf d0,wait_border + + dcb $4e71,196 + +loop: + move.b #0,$ffff820a.w + dcb $4e71,8 + move.b #2,$ffff820a.w + + btst #6,$fffffa0d.w + bne exit + + lea $ffff8209.w,a0 + moveq #0,d0 + moveq #30,d2 +sync: + move.b (a0),d0 + beq.s sync + sub.w d0,d2 + lsl.l d2,d2 + + dcb $4e71,79 + move.w #210,d0 +lo0001: + dcb $4e71,6 + move.b #2,$ffff8260.w + move.b #0,$ffff8260.w + dcb $4e71,87 + move.b #0,$ffff820a.w + move.b #2,$ffff820a.w + dcb $4e71,8 + move.b #1,$ffff8260.w + move.b #0,$ffff8260.w + dbf d0,lo0001 + + dcb $4e71,5 + move.b #2,$ffff8260.w + move.b #0,$ffff8260.w + dcb $4e71,87 + move.b #0,$ffff820a.w + dcb $4e71,12 + move.b #1,$ffff8260.w + move.b #0,$ffff8260.w + dcb $4e71,9 + move.b #2,$ffff8260.w + move.b #0,$ffff8260.w + move.b #2,$ffff820a.w + + dcb $4e71,83 + move.b #0,$ffff820a.w + move.b #2,$ffff820a.w + dcb $4e71,8 + move.b #1,$ffff8260.w + move.b #0,$ffff8260.w + + dcb $4e71,2 + moveq #13,d0 +lo0002: + dcb $4e71,6 + move.b #2,$ffff8260.w + move.b #0,$ffff8260.w + dcb $4e71,87 + move.b #0,$ffff820a.w + move.b #2,$ffff820a.w + dcb $4e71,8 + move.b #1,$ffff8260.w + move.b #0,$ffff8260.w + dbf d0,lo0002 + + dcb $4e71,5 + move.b #2,$ffff8260.w + move.b #0,$ffff8260.w + dcb $4e71,87 + move.b #0,$ffff820a.w + dcb $4e71,12 + move.b #1,$ffff8260.w + move.b #0,$ffff8260.w + dcb $4e71,9 + move.b #2,$ffff8260.w + move.b #0,$ffff8260.w + move.b #2,$ffff820a.w + + dcb $4e71,83 + move.b #0,$ffff820a.w + move.b #2,$ffff820a.w + dcb $4e71,8 + move.b #1,$ffff8260.w + move.b #0,$ffff8260.w + + dcb $4e71,2 + moveq #43,d0 +lo0003: + dcb $4e71,6 + move.b #2,$ffff8260.w + move.b #0,$ffff8260.w + dcb $4e71,87 + move.b #0,$ffff820a.w + move.b #2,$ffff820a.w + dcb $4e71,8 + move.b #1,$ffff8260.w + move.b #0,$ffff8260.w + dbf d0,lo0003 + + bsr waitvbl + move.w #1488,d0 +wait_border2: + dbf d0,wait_border2 + + dcb $4e71,194 + move.w #1911,$ffff8240.w + move.w #$00,$ffff8240.w + dcb $4e71,23 + + bra loop + +exit: + movea.l $0600.w,a0 + jmp (a0) + +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 + +;please leave all section indications unchanged... +;here starts the data section + +black: + dc.l 0,0,0,0,0,0,0,0 + dc.l 0,0,0,0,0,0,0,0 +graphic: + dc.l %01010101010101010011001100110011 + dc.l %00001111000011111111111111111111 +pal: + dc.w $000,$0221,$0332,$0443,$0554,$0665,$0110,$20 + +;end of data section + + section bss +;please leave all section indications unchanged... +bss_start: ;here starts the bss + +stack: ds.l 1 +screenad1: ds.l 1 + + +screenmem: ds.l 14300 +bss_end: ;here ends the bss + end + diff --git a/GENST2.INF b/GENST2.INF new file mode 100644 index 0000000000000000000000000000000000000000..02fc94fa6fbe304a2c3bf2768c6e0f7630f576ec GIT binary patch literal 30 kcmZ>F^$TX;U|?)pz`*dI!N|aXfq{XEf${%;AkDx40AiX2?*IS* literal 0 HcmV?d00001 diff --git a/GENST2.PRG b/GENST2.PRG new file mode 100644 index 0000000000000000000000000000000000000000..920706f5a33b7b15c8fc1caf287ead513a78bf92 GIT binary patch literal 51056 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 literal 0 HcmV?d00001 diff --git a/HWSCROLL.DAT b/HWSCROLL.DAT new file mode 100644 index 0000000000000000000000000000000000000000..2afccd3efd31c005368736ce295ccb19d303e277 GIT binary patch literal 3072 zcmZ{l3z8!-2tzaXKXjHS35+|vPWgi*1om{*d_Uj%eZFTB3wy-@OP)EA(1|P{G@b+n zjf6$xYKVqZMspWVWeBTRf>QwCMBya?cxxy*zZ5qIzWB+-rhdf!qw0*WSueQ>B$+&EC< zq|3k#)Bk`Wl_O0ImDl%WA6(WI3D`Slbp7N1b=QuZr1cI6BznQqz@<0Fx_!Ey@%#IM zyKqI7Z@AdUdlnC6UfH=5uwz>^C#f{CmJqS$^2b>2TKof e$wxv{d_QW=z0~TTzbl&TNk+cU2X^C<&GHY*rrl-$ literal 0 HcmV?d00001 diff --git a/MONST2.PRG b/MONST2.PRG new file mode 100644 index 0000000000000000000000000000000000000000..bfe95274c2e81dd7f6a46e38f81b61823c0ea0e1 GIT binary patch literal 23062 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