From 7ae258042a0563aeb9a6a7287289cb5a6642f639 Mon Sep 17 00:00:00 2001 From: Georges Kesseler Date: Tue, 21 Feb 2012 01:51:04 +0100 Subject: [PATCH] font and digisound are at the beginning of the program (always think differently, it may be faster). The planes of font and background are switched. No more right border flickering. Color 0 is now a font color. --- 3DFONT20.NEO | Bin 0 -> 32128 bytes FOND.SPC | Bin 0 -> 23602 bytes FONTMAK.BAS | Bin 0 -> 2592 bytes PARADIST.S | 227 ++++++++++++++++++++++------------------------ PLANEINV.BAS | Bin 0 -> 1232 bytes PLANEROT.BAS | Bin 0 -> 988 bytes includes/font.bin | Bin 22272 -> 13920 bytes 7 files changed, 109 insertions(+), 118 deletions(-) create mode 100644 3DFONT20.NEO create mode 100644 FOND.SPC create mode 100644 FONTMAK.BAS create mode 100644 PLANEINV.BAS create mode 100644 PLANEROT.BAS diff --git a/3DFONT20.NEO b/3DFONT20.NEO new file mode 100644 index 0000000000000000000000000000000000000000..e4b1682c7dfcaf54f655867e4fa5f14ff9d20599 GIT binary patch literal 32128 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 literal 0 HcmV?d00001 diff --git a/FOND.SPC b/FOND.SPC new file mode 100644 index 0000000000000000000000000000000000000000..f17069c1641dd88282d5a92e96c0cc51ac391c08 GIT binary patch literal 23602 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 H694@lyOLeM literal 0 HcmV?d00001 diff --git a/FONTMAK.BAS b/FONTMAK.BAS new file mode 100644 index 0000000000000000000000000000000000000000..ee5664a021426b11775747ac6e6e5b2fc355fa75 GIT binary patch literal 2592 zcmd5-&2Jl35Z_&Ib~lc*aUCZ$35sSNQk67{`bCQ(ps|~sI3$iECu!mc39ajwWQntm z)@uq?4+SAqA%qYII3V@FAHao6og&0vfjEGpJgCI6Tzg{P+WDw@K;p#8<2P^Ky!U2) zGjB#xW;Zk0%<|k#sr^N17$ORY?sw=@8jt96;!lzOqa+#6B&pjVN)k;FeM$6HhaS>+ zMBfqr9O(;%S-RYo=j4o>>&h2qR+qbGGAs66q-bwMmY3FvN^(hFKi14C%S-B7p*W*t zi%PDbWH*$V4Hq@?))hTBz-iQhxgOgEta(A%tya(%xp?}_N zrH_wncohiTy}iv(wyVsCDVS||^}xM7kL7b_3%rI8n;-e$dI9r2=D`*#`%dHbHmpuA zOy(zXUNtc;PQ2qVpV47EHSc}q2QKp)-WK?bEM^cm^?;!@X|~Q+{07^hgBrWwkvmW! zKb)PQ!K!2-l3r_y8J*irtb6sD6tt zsS1uJHe1>|m?p@iz-!v_ZtM#%bXq#4p9z}WScJZI&bLdATG#Sv=WDs z{qDhCvBM+y%R}lSO`=9lh=*{cga_4N;21(bjrHt*87dW4#y@rX|OBoNf`mC%--k)LbpjdHc? z1mWj&wPxs}G%nuV$+t$CJ@)28ZL93m+1Q2kvGLb0l*Yy{UAx%(7A2AncKH8t_A)mB z!a>_VVmgsjj_1?U!Y-QAE5FJ$?PRp0m1qCA3-$q17RC%Ify~MXM9S>ZectmXu+X;xrRhcjoq>m>*l+ zk#4o6M^+z6MNUM!4J~zxUaTB)Q#^t)p`#0Xuqf|Ar>>V>FRbek%3(rvSVd)A^o`WpEVvs0 z)gP*zWuRt5MVV@`FY1p{m=CKCS!>6xA1Yzlk06|*j30iVr$pU|9%X5S-gd5ov*6Jb zT2;z@($aCnq+W4@5=({Yrp8m#Z8U`@q*3@kJVSW3xobRyvtjqJG<-r%wYyaYFUBE5 z9Xo(a6Y0eo85_3$nXq5pNKafQDM{|Z+YY2B*2k#+sdf`%5k*V>Np-V{6(zivQucrN F{R8iqlB@s# literal 0 HcmV?d00001 diff --git a/PARADIST.S b/PARADIST.S index 81869a1..1d90f6e 100644 --- a/PARADIST.S +++ b/PARADIST.S @@ -1,9 +1,7 @@ -backport equ 10 overscan:equ 0 ; Double Megadistorter by Gunstick (c) ULM 1990 ; we know! it's long, but it works ! And it's from ULM !!! -;make : distcalcloop4 and vor+rueck 2,3 + 4 parallax equ 10 @@ -26,6 +24,12 @@ digisound: incbin "includes\telgraph.dmn" digiend: even + +font: + incbin "includes\font.bin" + even +fontend: + kotz: dc.l 0 noswreset: @@ -190,11 +194,11 @@ do_mdist MACRO lea 64(a5),a5 move.b #1,$ffff8260.w ;GunsticK's right border end switch move.b #0,$ffff8260.w - movem.l d3/d4/d5,$ffff8240.w ;mdist + movem.l d3/d4/d5,$ffff8250.w ;mdist ; dcb $4e71,9 move.b #2,$ffff8260.w ;Open left border move.b #0,$ffff8260.w - move.l d6,$ffff824c.w ;mdist + move.l d6,$ffff825c.w ;mdist ; dcb $4e71,4 ENDM @@ -208,11 +212,11 @@ do_mdist2 MACRO lea 64(a5),a5 move.b #1,$ffff8260.w ;GunsticK's right border end switch move.b #0,$ffff8260.w - movem.l d4/d5/d6,$ffff8240.w ;mdist + movem.l d4/d5/d6,$ffff8250.w ;mdist ; dcb $4e71,9 move.b #2,$ffff8260.w ;Open left border move.b #0,$ffff8260.w - move.l a2,$ffff824c.w ;mdist + move.l a2,$ffff825c.w ;mdist ; dcb $4e71,4 ENDM @@ -226,11 +230,11 @@ do_mdist02 MACRO lea 64(a5),a5 move.b #1,$ffff8260.w ;GunsticK's right border end switch move.b #0,$ffff8260.w - movem.l d2/d4/d5,$ffff8240.w ;mdist + movem.l d2/d4/d5,$ffff8250.w ;mdist ; dcb $4e71,9 move.b #2,$ffff8260.w ;Open left border move.b #0,$ffff8260.w - move.l d6,$ffff824c.w ;mdist + move.l d6,$ffff825c.w ;mdist ; dcb $4e71,4 ENDM @@ -481,7 +485,7 @@ __no_vbl: movem.l d0-d6/a0,$ffff8240.w ;blaf equ 174-55 -blaf equ 174 +blaf equ 174-55 move.w #1500-30,d0 opentopwait: dbra d0,opentopwait @@ -737,10 +741,11 @@ _notnextwavetab: move.w d_3,distcalc ;~16 scrhigh equ 20 +fontpartlen equ (fontend-font)/scrhigh lea disttable+0,a_2 ;~12 scroll begins 18 lines before end of screen lea shift,a_0 ;~12 pointer to the shifts - move.w #-(scrhigh*8),count ;~20 scroll has 18 lines - + move.w #-(scrhigh*fontpartlen),count ;~20 -14400 + distcalcloop: ;(~12) ;free: d0/d3-d7/a1-a2/a4-a7/usp cpy:d0/d3/a1/a2 @@ -797,11 +802,11 @@ indistcalcloop: dcb $4e71,8-2 do_mdist - dcb $4e71,4 + dcb $4e71,3 move.l usp,a_2 lea linebuffend-linebuffbegin(a_0),a_0 ;~8 next line - addq.w #8,count ;~4 + add.w #fontpartlen,count ;~4 bne distcalcloop2 ;~12 bra enddistcalc @@ -865,11 +870,11 @@ indistcalcloop2: dcb $4e71,8-2 do_mdist - dcb $4e71,4 + dcb $4e71,3 move.l usp,a_2 lea linebuffend-linebuffbegin(a_0),a_0 ;~8 next line - addq.w #8,count ;~4 + add.w #fontpartlen,count ;~4 bne distcalcloop3 ;~12 bra enddistcalc @@ -916,11 +921,11 @@ indistcalcloop3: dcb $4e71,8-2 do_mdist - dcb $4e71,4 + dcb $4e71,3 move.l usp,a_2 lea linebuffend-linebuffbegin(a_0),a_0 ;~8 next line - addq.w #8,count ;~4 + add.w #fontpartlen,count ;~4 bne distcalcloop4 ;~12 bra enddistcalc @@ -986,11 +991,11 @@ indistcalcloop4: dcb $4e71,8-2 do_mdist - dcb $4e71,4 + dcb $4e71,3 move.l usp,a_2 lea linebuffend-linebuffbegin(a_0),a_0 ;~8 next line - addq.w #8,count ;~4 + add.w #fontpartlen,count ;~4 bne distcalcloop ;~12 bra enddistcalc @@ -1052,7 +1057,6 @@ enddistcalc: ;=-| read the new distortions and shift the buffers - ; letters of font must be 256 bytes !!!!!!!! ;-> advance this line by one word vorwaerts: move.w d_2,(a_0) ;~8 write back new shift @@ -1077,9 +1081,12 @@ cont2: ; | ;UNLIMITED MATRICKS a bit of C appears somewhere ;now we have to write a bit of K and C - movep.w 0(a_1),d_1 ;~16 previous letter : C - movep.w 1(a_1),d_2 ;~16 act letter : K - tst.b d_1 ;~4 test letter after act : S + nop + moveq #0,d_1 + moveq #0,d_2 + move.b (a_1),d_1 ;~8 previous letter : C + move.b 1(a_1),d_2 ;~12 act letter : K + tst.b 2(a_1) ;~12 test letter after act : S bne.s nottextend ;~8 lea scrolltext,a_1 ;~12 nop @@ -1087,11 +1094,12 @@ cont2: nop _nottextend: move.l a_1,textptr-shift(a_0) ;~16 textptr points to K - clr.b d_1 ;~4 C - lsr.w #1,d_1 ;~8 - clr.b d_2 ;~4 K - lsr.w #1,d_2 ;~8 - lea font+(scrhigh*8),a_1 ;~8 +; clr.b d_1 ;~4 C + dcb $4e71,6-2-2-2 + lsl.w #3,d_1 ;~8 +; clr.b d_2 ;~4 K + lsl.w #3,d_2 ;~8 + lea font-8+(scrhigh*fontpartlen),a_1 ;~8 add.w count,a_1 ;~20 lea (a_1,d_1),a_2 ;~12 C movem.l (a_1,d_2),d_1/d_3 ;~36 K @@ -1105,7 +1113,6 @@ _nottextend: move.w (a_2)+,d_2 ;~8 move.w (a_2)+,d_3 ;~8 - dcb $4e71,6-2-2 calc_mdist2 move.b #0,$ffff820a.w ;Open right border @@ -1364,7 +1371,6 @@ cont5: add.l #25*8,bufptr-shift(a_0) ;~32 _rueckbufok: move.l textptr-shift(a_0),a_1 ;~16 - dcb $4e71,7-2-2 ;movep : 5 nops weniger ;actual = if any bit of the letter appears in one buffer ; textptr @@ -1372,15 +1378,18 @@ _rueckbufok: ;YEAH THIS IS UNLIMITED MATRICKS a bit of C appears somewhere ;a bit of A appears somewhere ;now we have to write a bit of E and A - movep.w -27(a_1),d_1 ;~16 previous letter : E - movep.w -26(a_1),d_2 ;~16 act letter : A + moveq #0,d_1 + moveq #0,d_2 + move.b -27(a_1),d_1 ;~12 previous letter : E + move.b -26(a_1),d_2 ;~12 act letter : A lea -1(a_1),a_1 ;~8 move.l a_1,textptr-shift(a_0) ;~16 textptr points to I - clr.b d_1 ;~4 E - lsr.w #1,d_1 ;~8 - clr.b d_2 ;~4 A - lsr.w #1,d_2 ;~8 - lea font+(scrhigh*8),a_1 ;~12 +; clr.b d_1 ;~4 E + lsl.w #3,d_1 ;~8 + dcb $4e71,7-2-2-2+2 +; clr.b d_2 ;~4 A + lsl.w #3,d_2 ;~8 + lea font-8+(scrhigh*fontpartlen),a_1 ;~8 add.w count,a_1 ;~20 lea (a_1,d_1),a_2 ;~12 E movem.l (a_1,d_2),d_1/d_3 ;~36 A @@ -1410,18 +1419,22 @@ vorwaerts2: move.w d_2,(a_0) move.l textptr-shift(a_0),a_1 dcb $4e71,2 - dcb $4e71,25-17 + dcb $4e71,25-17-3-1-1 - movep.w 0(a_1),d_1 ;~16 previous letter : C - movep.w 1(a_1),d_2 ;~16 act letter : K - tst.b d_1 ;~4 test letter after act : S + moveq #0,d_1 + moveq #0,d_2 + move.b (a_1),d_1 ;~16 previous letter : C + move.b 1(a_1),d_2 ;~16 act letter : K + tst.b 2(a_1) ;~4 test letter after act : S bne.s nottextend2 ;~8 lea scrolltext,a_1 ;~12 nop nop nop _nottextend2: - +; clr.b d_1 ;~4 C + lsl.w #3,d_1 ;~8 + nop calc_mdist @@ -1432,16 +1445,14 @@ nottextend2: ;~12 addq.w #1,a_1 ;~8 bra _nottextend2 ;~12 cont22: - dcb $4e71,5-2-1-2 - clr.b d_1 ;~4 C - lsr.w #1,d_1 ;~8 + dcb $4e71,5-2 +; clr.b d_2 ;~4 K do_mdist move.l a_1,textptr-shift(a_0) ;~16 textptr points to K - clr.b d_2 ;~4 K - lsr.w #1,d_2 ;~8 - lea font+(scrhigh*8),a_1 ;~8 + lsl.w #3,d_2 ;~8 + lea font-8+(scrhigh*fontpartlen),a_1 ;~8 add.w count,a_1 ;~20 lea (a_1,d_1),a_2 ;~12 C movem.l (a_1,d_2),d_1/d_3 ;~36 K @@ -1707,22 +1718,22 @@ cont52: dcb $4e71,5-2 do_mdist - - dcb $4e71,2 - movep.w -27(a_1),d_1 ;~16 previous letter : E - movep.w -26(a_1),d_2 ;~16 act letter : A + moveq #0,d_1 + moveq #0,d_2 + move.b -27(a_1),d_1 ;~16 previous letter : E + move.b -26(a_1),d_2 ;~16 act letter : A lea -1(a_1),a_1 ;~8 move.l a_1,textptr-shift(a_0) ;~16 textptr points to I - clr.b d_1 ;~4 E - lsr.w #1,d_1 ;~8 - clr.b d_2 ;~4 A - lsr.w #1,d_2 ;~8 - lea font+(scrhigh*8),a_1 ;~12 +; clr.b d_1 ;~4 E + lsl.w #3,d_1 ;~8 +; clr.b d_2 ;~4 A + lsl.w #3,d_2 ;~8 + lea font-8+(scrhigh*fontpartlen),a_1 ;~8 add.w count,a_1 ;~20 lea (a_1,d_1),a_2 ;~12 E movem.l (a_1,d_2),d_1/d_3 ;~36 A - dcb $4e71,7+18-22-2 + dcb $4e71,7+18-22 digi2 calc_mdist02 move.b #0,$ffff820a.w ;Open right border @@ -1762,9 +1773,11 @@ cont23: dcb $4e71,5-2 do_mdist - movep.w 0(a_1),d_1 ;~16 previous letter : C - movep.w 1(a_1),d_2 ;~16 act letter : K - tst.b d_1 ;~4 test letter after act : S + moveq #0,d_1 + moveq #0,d_2 + move.b (a_1),d_1 ;~16 previous letter : C + move.b 1(a_1),d_2 ;~16 act letter : K + tst.b 2(a_1) ;~4 test letter after act : S bne.s nottextend3 ;~8 lea scrolltext,a_1 ;~12 nop @@ -1772,11 +1785,12 @@ cont23: nop _nottextend3: move.l a_1,textptr-shift(a_0) ;~16 textptr points to K - clr.b d_1 ;~4 C - lsr.w #1,d_1 ;~8 - clr.b d_2 ;~4 K - lsr.w #1,d_2 ;~8 - lea font+(scrhigh*8),a_1 ;~8 +; clr.b d_1 ;~4 C + lsl.w #3,d_1 ;~8 +; clr.b d_2 ;~4 K + dcb $4e71,6-2-2-1 + lsl.w #3,d_2 ;~8 + lea font-8+(scrhigh*fontpartlen),a_1 ;~8 add.w count,a_1 ;~20 lea (a_1,d_1),a_2 ;~12 C movem.l (a_1,d_2),d_1/d_3 ;~36 K @@ -1789,7 +1803,6 @@ _nottextend3: move.w (a_2)+,d_1 ;~8 move.w (a_2)+,d_2 ;~8 move.w (a_2)+,d_3 ;~8 - dcb $4e71,6-2-2 calc_mdist2 move.b #0,$ffff820a.w ;Open right border @@ -2044,16 +2057,16 @@ cont53: add.l #25*8,bufptr-shift(a_0) ;~32 _rueckbufok3: move.l textptr-shift(a_0),a_1 ;~16 - dcb $4e71,7-2-2 - movep.w -27(a_1),d_1 ;~16 previous letter : E - movep.w -26(a_1),d_2 ;~16 act letter : A + moveq #0,d_1 + moveq #0,d_2 + move.b -27(a_1),d_1 ;~16 previous letter : E + move.b -26(a_1),d_2 ;~16 act letter : A lea -1(a_1),a_1 ;~8 move.l a_1,textptr-shift(a_0) ;~16 textptr points to I - clr.b d_1 ;~4 E - lsr.w #1,d_1 ;~8 - clr.b d_2 ;~4 A - lsr.w #1,d_2 ;~8 - lea font+(scrhigh*8),a_1 ;~12 + lsl.w #3,d_1 ;~8 + dcb $4e71,7-2-2 + lsl.w #3,d_2 ;~8 + lea font-8+(scrhigh*fontpartlen),a_1 ;~8 add.w count,a_1 ;~20 lea (a_1,d_1),a_2 ;~12 E movem.l (a_1,d_2),d_1/d_3 ;~36 A @@ -2095,9 +2108,11 @@ cont24: dcb $4e71,5-2 do_mdist - movep.w 0(a_1),d_1 ;~16 previous letter : C - movep.w 1(a_1),d_2 ;~16 act letter : K - tst.b d_1 ;~4 test letter after act : S + moveq #0,d_1 + moveq #0,d_2 + move.b (a_1),d_1 ;~16 previous letter : C + move.b 1(a_1),d_2 ;~16 act letter : K + tst.b 2(a_1) ;~4 test letter after act : S bne.s nottextend4 ;~8 lea scrolltext,a_1 ;~12 nop @@ -2105,11 +2120,10 @@ cont24: nop _nottextend4: move.l a_1,textptr-shift(a_0) ;~16 textptr points to K - clr.b d_1 ;~4 C - lsr.w #1,d_1 ;~8 - clr.b d_2 ;~4 K - lsr.w #1,d_2 ;~8 - lea font+(scrhigh*8),a_1 ;~8 + lsl.w #3,d_1 ;~8 + dcb $4e71,6-2-2-1 + lsl.w #3,d_2 ;~8 + lea font-8+(scrhigh*fontpartlen),a_1 ;~8 add.w count,a_1 ;~20 lea (a_1,d_1),a_2 ;~12 C movem.l (a_1,d_2),d_1/d_3 ;~36 K @@ -2122,7 +2136,6 @@ _nottextend4: move.w (a_2)+,d_1 ;~8 move.w (a_2)+,d_2 ;~8 move.w (a_2)+,d_3 ;~8 - dcb $4e71,6-2-2 calc_mdist2 move.b #0,$ffff820a.w ;Open right border @@ -2362,16 +2375,16 @@ cont54: add.l #25*8,bufptr-shift(a_0) ;~32 _rueckbufok4: move.l textptr-shift(a_0),a_1 ;~16 - dcb $4e71,7-2-2 - movep.w -27(a_1),d_1 ;~16 previous letter : E - movep.w -26(a_1),d_2 ;~16 act letter : A + moveq #0,d_1 + moveq #0,d_2 + move.b -27(a_1),d_1 ;~16 previous letter : E + move.b -26(a_1),d_2 ;~16 act letter : A lea -1(a_1),a_1 ;~8 move.l a_1,textptr-shift(a_0) ;~16 textptr points to I - clr.b d_1 ;~4 E - lsr.w #1,d_1 ;~8 - clr.b d_2 ;~4 A - lsr.w #1,d_2 ;~8 - lea font+(scrhigh*8),a_1 ;~12 + lsl.w #3,d_1 ;~8 + dcb $4e71,7-2-2 + lsl.w #3,d_2 ;~8 + lea font-8+(scrhigh*fontpartlen),a_1 ;~8 add.w count,a_1 ;~20 lea (a_1,d_1),a_2 ;~12 E movem.l (a_1,d_2),d_1/d_3 ;~36 A @@ -2498,14 +2511,6 @@ o_endcpy: bne scrollcpy endscrollcpy: - ifne backport - move.b #0,$fffffa19.w - move.b #80,$fffffa1f.w - move.b #32,$fffffa07.w - move.b #0,$fffffa0b.w - move.b #2,$fffffa19.w - endc - c0 equr d0 c1 equr d1 c2 equr d2 @@ -2810,7 +2815,7 @@ mbounceok: lea 15*2(a4),a4 calc_mdist - movem.l d3/d4/d5/d6,hwpalette + movem.l d3/d4/d5/d6,hwpalette+16 lea 64(a5),a5 @@ -5902,9 +5907,6 @@ openlowtab: dc.b 2,2,2,2,2,2 dc.b 2,2,2,2,2,2 - even -font equ *-32*8 - incbin "includes\font.bin" even wavetab: ; dc.l byteschief,0 @@ -6218,25 +6220,14 @@ space equ 87 dc.b space,space,u,u+1,space,l,l+1,space,m,m+1,space,az,az+1,az,az+1,az,az+1 dc.b space,space scrolltext: - dc.b zero,zero,zero,zero,zero,zero,zero,zero,0 +; 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 dc.b t,t+1,h,h+1,i,i+1,s,s+1,space,space,i,i+1,s,s+1,space,space dc.b g,g+1,u,u+1,n,n+1,s,s+1,t,t+1,i,i+1,c,c+1,k,k+1,space,s,s+1 dc.b space,space,space,r,r+1,e,e+1,v,v+1,o,o+1,l,l+1,u,u+1,t,t+1,i,i+1,o,o+1 dc.b n,n+1,a,a+1,r,r+1,y,y+1,space,space,f,f+1,u,u+1,l,l+1,l,l+1,mi,mi+1 dc.b s,s+1,c,c+1,r,r+1,e,e+1,e,e+1,n,n+1,mi,mi+1,s,s+1,c,c+1,r,r+1,e,e+1,e,e+1,n,n+1 - dc.b space,az,az+1,az,az+1,space,space,space,0 - dc.b space,space,space,space,space,space,space,space - dc.b space,space,space,space,space,space,space,space - dc.b space,space,space,space,space,space,space,space - dc.b space,space,space,space,space,space,space,space - dc.b space,space,space,space,space,space,space,space - dc.b space,space,space,space,space,space,space,space - dc.b space,space,space,space,space,space,space,space - dc.b space,space,space,space,space,space,space,space - dc.b space,space,space,space,space,space,space,space - dc.b space,space,space,space,space,space,space,space - dc.b space,space,space,space,space,space,space,space + dc.b space,az,az+1,az,az+1,space,space,space dc.b n,n+1,o,o+1,b,b+1,o,o+1,d,d+1,y,y+1 dc.b space,space,c,c+1,a,a+1,n,n+1,space,space,b,b+1,e,e+1,a,a+1,t,t+1 dc.b space,space,u,u+1,space,l,l+1,space,m,m+1,space,az,az+1,az,az+1,az,az+1 @@ -6266,8 +6257,8 @@ 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 hwpalette: - dc.w $0700,$0707,$0474,$0777,$0606,$0505,$0404,$303 dc.w $777,$666,$555,$444,$333,$222,$111,$002 + dc.w $0700,$0707,$0474,$0777,$0606,$0505,$0404,$303 graphic: dc.w $d555,$3333,$0f0f,$ff message: diff --git a/PLANEINV.BAS b/PLANEINV.BAS new file mode 100644 index 0000000000000000000000000000000000000000..f0b48f6611c0c7318534cc0714c1763422ffd231 GIT binary patch literal 1232 zcmb_ZL2nyH6rLGx#v#paR+a;pO71vKq6AD7I|3>sB3!&H(!1sWk0KX$7d=4mHVguqBHCVrac-1I_ zxPmoY!0Lo% zHLb3!8=D(-rAC@f(rDlc(Hlf>61{@Ag<`X=;3{rmjhL&%%n>tB%r&fIgBsNm$e|m0 zVbg+dyP#IF8e8Ae1l2GtB!x&h9m2mOLKvS6CzR9Q7#C!5n3nu^JC1$G`d)9(Yabji z$9-UXM-G6a_ar}QJFd;lZX0H|y|d3Aw)eZ-UXuK|t1APy!;YMOfA`z{uI;f;S$W_d z9yvP|es59onLF^ad?)xhnijnbACO}+x`|0VBjaw{zKC z{*IUkkn+Xw>*$6A1&kwlM?dF7`XiL)5@9;>mA-&;sEBivka^Ez+QMh6tlnc0!<=k- z-~;5cs(n1aWCHt=zVIQOeV{EYFN;i)w|Y*8X>NZhzbsD48}@NjE+!`to%O<$a#kK5 zNBjc!S@${m=OpTehN(^@$GU|$OLPmYT=3+>Tf1v5{=Cvp-{*Ca}{?%%nnmHM-{;$Zc N5zU;OT+3Z0{sZNp2MPcH literal 0 HcmV?d00001 diff --git a/PLANEROT.BAS b/PLANEROT.BAS new file mode 100644 index 0000000000000000000000000000000000000000..93b2c6103e5a44d7d967e01e109f3eaa7ce30d96 GIT binary patch literal 988 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 literal 22272 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 J_wY@{{{yat8Yut(