From e37873de3bff9d131b3ea5217fe110837ee7411b Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Tue, 6 Sep 2022 00:30:11 -0400 Subject: [PATCH] appleiibot: add elite --- basic/appleiibot/Makefile | 19 ++++++----- basic/appleiibot/elite.bas | 7 ++++ basic/appleiibot/elite.points | 41 +++++++++++++++++++++++ basic/appleiibot/elite_big.bas | 8 +++++ basic/appleiibot/make_points.c | 47 +++++++++++++++++++++------ empty_disk/empty_lots_of_dirents.dsk | Bin 0 -> 143360 bytes games/lemm/TODO | 3 ++ graphics/hgr/solaris/Makefile | 14 ++++++-- music/cd/Makefile | 14 ++++++-- music/cd/horiz_bot.s | 42 ++++++++++++------------ 10 files changed, 152 insertions(+), 43 deletions(-) create mode 100644 basic/appleiibot/elite.bas create mode 100644 basic/appleiibot/elite.points create mode 100644 basic/appleiibot/elite_big.bas create mode 100644 empty_disk/empty_lots_of_dirents.dsk diff --git a/basic/appleiibot/Makefile b/basic/appleiibot/Makefile index 8badb5a9..8faed03a 100644 --- a/basic/appleiibot/Makefile +++ b/basic/appleiibot/Makefile @@ -26,8 +26,8 @@ appleiibot.dsk: E2.BAS FLAME.BAS FLAME2.BAS HELLO \ PARTICLE_HGR.BAS DIAMOND_SCROLL.BAS RANDOM_SCROLL.BAS STAR_BOUNCE.BAS\ OOZE.BAS HORIZ_STAR.BAS SECRET_COLLECT.BAS PLANET.BAS PLANET_GR.BAS \ BOXES.BAS SOLARIS.BAS SOLARIS2.BAS ASPLODE.BAS SOLARIS3.BAS \ - TARGET.BAS - cp $(EMPTY_DISK)/empty.dsk appleiibot.dsk + TARGET.BAS ELITE.BAS + cp $(EMPTY_DISK)/empty_lots_of_dirents.dsk appleiibot.dsk # cp empty.dsk appleiibot.dsk # $(DOS33) -y appleiibot.dsk BSAVE -a 0x0300 LOAD $(DOS33) -y appleiibot.dsk SAVE A HELLO @@ -132,16 +132,12 @@ appleiibot.dsk: E2.BAS FLAME.BAS FLAME2.BAS HELLO \ $(DOS33) -y appleiibot.dsk SAVE A PLANET.BAS $(DOS33) -y appleiibot.dsk SAVE A PLANET_GR.BAS $(DOS33) -y appleiibot.dsk SAVE A BOXES.BAS -# $(DOS33) -y appleiibot.dsk SAVE A SOLARIS.BAS -# $(DOS33) -y appleiibot.dsk SAVE A SOLARIS2.BAS + $(DOS33) -y appleiibot.dsk SAVE A SOLARIS.BAS + $(DOS33) -y appleiibot.dsk SAVE A SOLARIS2.BAS $(DOS33) -y appleiibot.dsk SAVE A ASPLODE.BAS $(DOS33) -y appleiibot.dsk SAVE A SOLARIS3.BAS $(DOS33) -y appleiibot.dsk SAVE A TARGET.BAS - -#appleiibot2.dsk: BOXES.BAS HELLO -# cp empty.dsk appleiibot2.dsk -# $(DOS33) -y appleiibot2.dsk SAVE A HELLO -# $(DOS33) -y appleiibot2.dsk SAVE A BOXES.BAS + $(DOS33) -y appleiibot.dsk SAVE A ELITE.BAS #### @@ -773,6 +769,11 @@ ASPLODE.BAS: asplode.bas TARGET.BAS: target.bas $(TOKENIZE) < target.bas > TARGET.BAS +#### + +ELITE.BAS: elite.bas + $(TOKENIZE) < elite.bas > ELITE.BAS + #### diff --git a/basic/appleiibot/elite.bas b/basic/appleiibot/elite.bas new file mode 100644 index 00000000..d625f847 --- /dev/null +++ b/basic/appleiibot/elite.bas @@ -0,0 +1,7 @@ +0REM~*:B6S6l;`ALB5@):~B9B>I?I8B9~L8L?T>T:L8"~4-;8NEaNnPZ?L74-N5YI?I8B9~L8L?T>T:L8"~4-;8NEaNnPZ?L74-N5Y #include +static int debug=1; + +/* if div=3 */ +/* can't plot at 0 or 279 */ +/* min is 3 = 1 to 276 = 92 */ +/* add = 33 so from 34 to 125 */ + +/* if div=2 */ +/* can't plot at 0 or 184 */ +/* min is 2 = 1 to 184 = 92 */ +/* centered on screen that's roughly 50 - 234 */ + int main(int argc, char **argv) { char buffer[1024]; @@ -9,9 +21,20 @@ int main(int argc, char **argv) { char output[1024]; int out_ptr=0; int add=33; + int xadjust=0; + int div=3; if (argc>1) { - add=atoi(argv[1]); + div=atoi(argv[1]); + } + + if (div==2) { + xadjust=-50; + } + + if (debug) { + fprintf(stderr,"Using div=%d add=%d xadjust=%d\n", + div,add,xadjust); } while(1) { @@ -21,23 +44,27 @@ int main(int argc, char **argv) { if (buffer[0]=='#') continue; sscanf(buffer,"%d %d %d %d %d", &a1,&a2,&a3,&a4,&a5); - printf("%d %d %d %d %d\n",a1,a2,a3,a4,a5); + if (debug) fprintf(stderr,"%d %d %d %d %d\n",a1,a2,a3,a4,a5); if (a1==279) { - output[out_ptr]=(a1/3)+add; - output[out_ptr+1]=(a2/3)+add; - output[out_ptr+2]=(a3/3)+add; - output[out_ptr+3]=(a4/3)+add; - output[out_ptr+4]=(a5/3)+add; + output[out_ptr]=((a1-xadjust)/div)+add; + output[out_ptr+1]=((a2-xadjust)/div)+add; + output[out_ptr+2]=((a3-xadjust)/div)+add; + output[out_ptr+3]=((a4-xadjust)/div)+add; + output[out_ptr+4]=((a5-xadjust)/div)+add; out_ptr+=5; } + else if (a1==3) { + output[out_ptr]=((a1-xadjust)/div)+add; + out_ptr+=1; + } else if (a1==0) { - output[out_ptr]=(a1/3)+add; + output[out_ptr]=((a1-xadjust)/div)+add; out_ptr+=1; break; } else { - output[out_ptr]=(a1/3)+add; - output[out_ptr+1]=(a2/3)+add; + output[out_ptr]=((a1-xadjust)/div)+add; + output[out_ptr+1]=((a2-xadjust)/div)+add; out_ptr+=2; } } diff --git a/empty_disk/empty_lots_of_dirents.dsk b/empty_disk/empty_lots_of_dirents.dsk new file mode 100644 index 0000000000000000000000000000000000000000..01fd92b6d3aac6958ac618842f24216d22947e63 GIT binary patch literal 143360 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 Dres$f literal 0 HcmV?d00001 diff --git a/games/lemm/TODO b/games/lemm/TODO index fcc3bb17..884a59da 100644 --- a/games/lemm/TODO +++ b/games/lemm/TODO @@ -1,3 +1,6 @@ + +be sure that clicking on digger twice doesn't decrement twice + Improve explosions + offset the frames when nuking so not simultaneous + on explosion, start with invisible 6 so we always get a full 5s diff --git a/graphics/hgr/solaris/Makefile b/graphics/hgr/solaris/Makefile index 2f33d85a..5117b33f 100644 --- a/graphics/hgr/solaris/Makefile +++ b/graphics/hgr/solaris/Makefile @@ -7,13 +7,14 @@ EMPTYDISK = ../../../empty_disk/empty.dsk all: solaris.dsk -solaris.dsk: HELLO SOLARIS SOLARIS2 SOLARIS3 SOLARIS4 +solaris.dsk: HELLO SOLARIS SOLARIS2 SOLARIS3 SOLARIS4 SOLARIS_BOT cp $(EMPTYDISK) solaris.dsk $(DOS33) -y solaris.dsk SAVE A HELLO $(DOS33) -y solaris.dsk BSAVE -a 0xc00 SOLARIS $(DOS33) -y solaris.dsk BSAVE -a 0xc00 SOLARIS2 $(DOS33) -y solaris.dsk BSAVE -a 0xc00 SOLARIS3 $(DOS33) -y solaris.dsk BSAVE -a 0xc00 SOLARIS4 + $(DOS33) -y solaris.dsk BSAVE -a 0x3F5 SOLARIS_BOT ### @@ -54,9 +55,18 @@ SOLARIS4: solaris4.o solaris4.o: solaris4.s ca65 -o solaris4.o solaris4.s -l solaris4.lst +### + +SOLARIS_BOT: solaris_bot.o + ld65 -o SOLARIS_BOT solaris_bot.o -C $(LINKERSCRIPTS)/apple2_3f5.inc + +solaris_bot.o: solaris_bot.s + ca65 -o solaris_bot.o solaris_bot.s -l solaris_bot.lst + ### clean: - rm -f *~ *.o *.lst HELLO SOLARIS SOLARIS2 SOLARIS3 SOLARIS4 + rm -f *~ *.o *.lst HELLO SOLARIS SOLARIS2 SOLARIS3 SOLARIS4 SOLARIS_BOT + diff --git a/music/cd/Makefile b/music/cd/Makefile index 9234dbce..8d4d35f4 100644 --- a/music/cd/Makefile +++ b/music/cd/Makefile @@ -7,10 +7,11 @@ EMPTYDISK = ../../empty_disk/empty.dsk all: cd.dsk -cd.dsk: HELLO HORIZ +cd.dsk: HELLO HORIZ HORIZ_BOT cp $(EMPTYDISK) cd.dsk $(DOS33) -y cd.dsk SAVE A HELLO $(DOS33) -y cd.dsk BSAVE -a 0xC00 HORIZ + $(DOS33) -y cd.dsk BSAVE -a 0x370 HORIZ_BOT ### @@ -25,7 +26,16 @@ HORIZ: horiz.o horiz.o: horiz.s ca65 -o horiz.o horiz.s -l horiz.lst +### + +HORIZ_BOT: horiz_bot.o + ld65 -o HORIZ_BOT horiz_bot.o -C $(LINKERSCRIPTS)/apple2_370.inc + +horiz_bot.o: horiz_bot.s + ca65 -o horiz_bot.o horiz_bot.s -l horiz_bot.lst + + #### clean: - rm -f *~ *.o *.lst HORIZ + rm -f *~ *.o *.lst HORIZ HORIZ_BOT diff --git a/music/cd/horiz_bot.s b/music/cd/horiz_bot.s index 982ed55b..3bfd4c33 100644 --- a/music/cd/horiz_bot.s +++ b/music/cd/horiz_bot.s @@ -6,6 +6,8 @@ ; 156 bytes = BIT trick ; 154 bytes = set offsets properly ; 151 bytes = redo init +; 145 bytes = leave OFFSET_POINTER in X +; 136 bytes = get rid of end offsets GBASL = $26 GBASH = $27 @@ -45,8 +47,8 @@ horiz: forever_loop: - lda #$0 ; offset into the length pointers - sta OFFSET_POINTER + lda #$0 + tax ; X = OFFSET_POINTER into length pointers ; A = screen line, 0..24 big_loop: @@ -55,7 +57,6 @@ big_loop: jsr BASCALC ; calculate address of line in BASL/BASH ldy #39 ; draw 40 pixels on screen - ldx OFFSET_POINTER ; get pointer to the offsets hlin: tya @@ -71,7 +72,8 @@ gurg: tya clc - sbc endoffsets,X + sbc offsets,X + sbc #30 bvs gurg2 eor #$80 gurg2: @@ -103,10 +105,12 @@ blah: adc offsets,X sta BASL - ldx LINE ; which line of bitmap to use + ldy LINE ; which line of bitmap to use + + lda star_bitmap-1,Y ; get low bit of bitmap into carry ldy #7 ; 8-bits wide - lda star_bitmap-1,X ; get low bit of bitmap into carry + draw_line_loop: lsr @@ -125,10 +129,6 @@ its_transparent: skip_star: - - - ldx OFFSET_POINTER - ; see if new offset (meaning, we've gone three lines) dec LINE @@ -142,10 +142,15 @@ skip_star: lda #$b3 sta color_smc+1 ; add shadow to (top?) of line - dec offsets,X ; scroll the line length - dec endoffsets,X - inc OFFSET_POINTER ; point to next set of offsets + dec offsets,X ; scroll the line length + +; lda offsets,X +; and #$7f +; sta offsets,X + + + inx ; point to next set of offsets lda #3 ; reset line vlue sta LINE @@ -156,12 +161,9 @@ not3: pla ; restore line count clc - adc #1 - cmp #24 -; tax + adc #1 ; increment -; inx -; cpx #24 ; see if reached bottom + cmp #24 ; see if reached bottom bne big_loop @@ -179,8 +181,8 @@ not3: offsets: .byte 30,29,31,38,31,34,32,35 -endoffsets: - .byte 60,50,61,68,61,64,62,65 +;endoffsets: +; .byte 60,50,61,68,61,64,62,65 ; 76543210