diff --git a/basic/appleiibot/4am.s b/basic/appleiibot/4am.s new file mode 100644 index 00000000..5d253e07 --- /dev/null +++ b/basic/appleiibot/4am.s @@ -0,0 +1,52 @@ +PLOT = $F800 ; plot, horiz=y, vert=A (A trashed, XY Saved) +SETCOL = $F864 +TEXT = $FB36 ;; Set text mode +BASCALC = $FBC1 +SETGR = $FB40 +HOME = $FC58 ;; Clear the text screen +WAIT = $FCA8 ;; delay 1/2(26+27A+5A^2) us +HLINE = $F819 + + +bitmap: + jsr SETGR + + ldx #0 +bitmap_loop: + lda bitmap_graphic,X + + jsr PLOT + inx + cpx #120 + bne bitmap_loop + +done: + jmp done + + +bitmap_graphic: +.byte $FF,$FF,$FF,$FF,$FF +.byte $00,$00,$00,$00,$00 +.byte $FF,$FF,$FF,$FF,$FF +.byte $00,$00,$00,$00,$00 +.byte $FF,$FF,$FF,$FF,$FF +.byte $00,$00,$00,$00,$00 +.byte $FF,$FF,$FF,$FF,$FF +.byte $00,$00,$00,$00,$00 +.byte $FF,$FF,$FF,$FF,$FF +.byte $00,$00,$00,$00,$00 +.byte $FF,$FF,$FF,$FF,$FF +.byte $00,$00,$00,$00,$00 +.byte $FF,$FF,$FF,$FF,$FF +.byte $00,$00,$00,$00,$00 +.byte $FF,$FF,$FF,$FF,$FF +.byte $00,$00,$00,$00,$00 +.byte $FF,$FF,$FF,$FF,$FF +.byte $00,$00,$00,$00,$00 +.byte $FF,$FF,$FF,$FF,$FF +.byte $00,$00,$00,$00,$00 +.byte $FF,$FF,$FF,$FF,$FF +.byte $00,$00,$00,$00,$00 +.byte $FF,$FF,$FF,$FF,$FF +.byte $00,$00,$00,$00,$00 + diff --git a/demos/Makefile b/demos/Makefile new file mode 100644 index 00000000..07a21742 --- /dev/null +++ b/demos/Makefile @@ -0,0 +1,32 @@ +all: + cd 32b && make + cd another_myst && make + cd applebot_demo && make + cd fire && make + cd hellmood_memories && make + cd kfest2018 && make + cd lores_escape && make + cd megademo && make + cd mode7_demo && make + cd seasons && make + cd shapetable_party && make + cd vertical_scroll && make + cd xmas_2018 && make + cd xmas_2019 && make + +clean: + cd 32b && make clean + cd another_myst && make clean + cd applebot_demo && make clean + cd fire && make clean + cd hellmood_memories && make clean + cd kfest2018 && make clean + cd lores_escape && make clean + cd megademo && make clean + cd mode7_demo && make clean + cd seasons && make clean + cd shapetable_party && make clean + cd vertical_scroll && make clean + cd xmas_2018 && make clean + cd xmas_2019 && make clean + rm -f *~ diff --git a/demos/README b/demos/README new file mode 100644 index 00000000..37183a72 --- /dev/null +++ b/demos/README @@ -0,0 +1,31 @@ +Various Apple II demoscne demos and experiments by + Vince "deater" Weaver of VMW Productions and DESIRE + ++ 32b + Attepts at an Apple II 32-byte demo ++ another_myst + A weird mashup of another world and myst ++ appleiibot_demo + Apple II Twitter Bot demo, Demosplash 2020 (1st retro demo) ++ fire + PSX doom fire for Apple II lores in 64 bytes ++ hellmood_memories + attempts to port hellmood's memories to Apple II ++ kfest2018 + cycle counting demo, written during hackfest at Kansasfest 2018 (2nd) ++ lores_escape + apple ii cycle counting demo, demosplash 2019 (3rd retro demo) ++ megademo + apple ii cycle counting megademo, demosplash 2018 (1st retro demo) ++ mode7_demo + mode7-esque demo (not released at a party) ++ seasons + 128 byte outline 2020 demo (6th) ++ shapetable_party + 256 byte @party 2020 demo (6th) ++ vertical_scroll + work on vertical lores scrolling ++ xmas_2018 + 2018 xmas demo, with some subtle cycle-counted vapor lock ++ xmas_2019 + 2019 xmas demo, with cycle-counted vapor lock diff --git a/demos/seasons/README b/demos/seasons/README new file mode 100644 index 00000000..6f8e933a --- /dev/null +++ b/demos/seasons/README @@ -0,0 +1,42 @@ +Apple II Seasons 128B Demo +-=DESiRE=- / Outline 2020 + +Watch as leaves cycle through the colors of the seasons + +Platform: Apple II + Requires Apple II+ (1979) or later + +Code: deater + hellmood + qkumba + +Link to video: + http://web.eece.maine.edu/~vweaver/junk/appleii_seasons.mkv + + Video captured on AppleWin emulator. Should run on real + hardware but all of my Apple II hardware is on lockdown at work. + +Files: + SEASONS -- 127 byte executable + seasons.s -- source code, can assemble with ca65 assembler + seasons.dsk -- 140k Apple DOS33 disk image suitable for use in emulator + +Notes: + + 128 Byte demo for the Apple II (1MHz 6502) + + Written in 6502 assembly language + + Uses "high-resolution" graphics mode which is 280x192 in 6 colors. + This mode has lots of complex color-clash and memory-interleave + issues which make it a pain to code for. + + The Apple II has very simple graphics. No hardware sprites, no + VBLANK/HBLANK interrupts, no scrolling, no palette + changes, no acceleration of any type. The only feature + it has is two graphics pages + for page flipping (which is not used in this demo) + + Depends on the Applesoft BASIC ROM for "HPLOT" routine + which means it requires at least an Apple II+ (released in + 1979) or later machine. + Should work on a II+/IIe/IIc/IIgs, and even an original + Apple II (1977) if you have an Applesoft language card + ROM expansion + + Based on Hellmood's 64B DOS demo "Autumn" + + Saves a few bytes by running entirely in the zero page diff --git a/disk/Makefile b/disk/Makefile new file mode 100644 index 00000000..9afe03bd --- /dev/null +++ b/disk/Makefile @@ -0,0 +1,13 @@ + +all: + cd disk_bug && make + cd qboot && make + cd qboot2 && make + cd save && make + +clean: + cd disk_bug && make clean + cd qboot && make clean + cd qboot2 && make clean + cd save && make clean + rm -f *~ diff --git a/disk/README b/disk/README new file mode 100644 index 00000000..23f11aec --- /dev/null +++ b/disk/README @@ -0,0 +1,3 @@ +code used for testing Apple II disk + +most of it by qkumba diff --git a/games/duke/graphics/level2_bg.png b/games/duke/graphics/level2_bg.png index dfc279b0..35e792b1 100644 Binary files a/games/duke/graphics/level2_bg.png and b/games/duke/graphics/level2_bg.png differ diff --git a/games/duke/maps/level1_map.png b/games/duke/maps/level1_map.png index fdd81957..2adbb07b 100644 Binary files a/games/duke/maps/level1_map.png and b/games/duke/maps/level1_map.png differ diff --git a/games/ootw/ootw_graphics/l15final/fall07.png b/games/ootw/ootw_graphics/l15final/fall07.png index 8a2408c3..1156da57 100644 Binary files a/games/ootw/ootw_graphics/l15final/fall07.png and b/games/ootw/ootw_graphics/l15final/fall07.png differ diff --git a/games/tfv/hello.bas b/games/tfv/hello.bas new file mode 100644 index 00000000..45eb49ca --- /dev/null +++ b/games/tfv/hello.bas @@ -0,0 +1,9 @@ + 2 HOME + 5 PRINT + 10 PRINT "FUN TIMES" + 20 PRINT + 22 PRINT "TALBOT FANTASY 7 VERSION 004" + 23 PRINT + 24 PRINT "HTTP://WWW.DEATER.NET/WEAVE/VMWPROD/TFV" + 25 PRINT : PRINT + 40 PRINT CHR$(4);"BRUN LOADER" diff --git a/games/tfv/init_vars.s b/games/tfv/init_vars.s new file mode 100644 index 00000000..389716a7 --- /dev/null +++ b/games/tfv/init_vars.s @@ -0,0 +1,13 @@ + + ;===================== + ; init vars + ;===================== +init_vars: + lda #0 + sta FRAMEL + sta FRAMEH + sta DISP_PAGE + sta JOYSTICK_ENABLED + sta LEVEL_OVER + + rts diff --git a/games/tfv/rotate_intro.s b/games/tfv/rotate_intro.s new file mode 100644 index 00000000..f4ad5673 --- /dev/null +++ b/games/tfv/rotate_intro.s @@ -0,0 +1,98 @@ + ;=============================== + ; rotate intro -- rotate screen + ;=============================== + +rotate_intro: + + ; first copy current screen to background + + jsr gr_copy_current_to_offscreen_40x40 + +; int xx,yy,color,x2,y2; +; double h,theta,dx,dy,theta2,thetadiff,nx,ny; +; int i; + +; gr_copy(0x400,0xc00); + +; gr_copy_to_current(0xc00); +; page_flip(); +; gr_copy_to_current(0xc00); +; page_flip(); + +; thetadiff=0; + +; for(i=0;i<8;i++) { + +; for(yy=0;yy<40;yy++) { +; for(xx=0;xx<40;xx++) { +; dx=(xx-20); +; dy=(yy-20); +; h=sqrt((dx*dx)+(dy*dy)); +; theta=atan2(dy,dx); +; +; theta2=theta+thetadiff; +; nx=h*cos(theta2); +; ny=h*sin(theta2); +; +; x2=nx+20; +; y2=ny+20; +; if ((x2<0) || (x2>39)) color=0; +; else if ((y2<0) || (y2>39)) color=0; +; else color=scrn_page(x2,y2,PAGE2); + +; color_equals(color); +; plot(xx,yy); +; } +; } +; thetadiff+=(6.28/16.0); +; page_flip(); + +; usleep(100000); +; } + + rts + + + + + + ;========================================================= + ; gr_copy_current_to_offscreen 40x40 + ;========================================================= + ; Copy draw page to $c00 + ; Take image in 0xc00 + ; Copy to DRAW_PAGE + ; Actually copy lines 0..39 + ; Don't over-write bottom 4 lines of text +gr_copy_current_to_offscreen_40x40: + + ldx #0 +gco_40x40_loop: + lda gr_offsets,X + sta OUTL + sta INL + lda gr_offsets+1,X + clc + adc DRAW_PAGE + sta OUTH + + lda gr_offsets+1,X + clc + adc #$8 + sta INH + + ldy #39 +gco_40x40_inner: + lda (OUTL),Y + sta (INL),Y + + dey + bpl gco_40x40_inner + + inx + inx + + cpx #40 + bne gco_40x40_loop + + rts ; 6 diff --git a/games/tfv/select_item.s b/games/tfv/select_item.s new file mode 100644 index 00000000..10080a3e --- /dev/null +++ b/games/tfv/select_item.s @@ -0,0 +1,58 @@ + ; print menu selection, draw to draw page + + ; use arrow keys to scroll + ; return/space selects + + ; X = num entries + ; Y = start Y? + ; OUTL/OUTH points to list to draw + + ; return number of response in A + ; $FF = nothing + ; 0..# is number of selection chosen + +draw_menu: + + ; clear bottom + + jsr clear_bottom + + ; make normal? + + ; draw list + + jsr move_and_print_list + + ; draw arrow + + lda menu_y + asl + tay + lda gr_offsets+1,Y + clc + adc DRAW_PAGE + sta OUTH + clc + lda gr_offsets,Y + adc menu_x + sta OUTL + + ldy #0 + lda #'-' + sta (OUTL),Y + iny + sta (OUTL),Y + iny + lda #'>' + sta (OUTL),Y + + ; check keypress + + lda #$ff + sta MENU_RESULT + + rts + + +menu_x: .byte 12 +menu_y: .byte 21 diff --git a/graphics/dgr/dlowres_mode7/README b/graphics/dgr/dlowres_mode7/README new file mode 100644 index 00000000..80665b19 --- /dev/null +++ b/graphics/dgr/dlowres_mode7/README @@ -0,0 +1,4 @@ +Double lores version of the mode7 flyer + +was a quick hack + diff --git a/graphics/gr/README b/graphics/gr/README new file mode 100644 index 00000000..3939bb69 --- /dev/null +++ b/graphics/gr/README @@ -0,0 +1,2 @@ +place to test out lo-res programs + diff --git a/music/pt3_player/HELLO b/music/pt3_player/HELLO deleted file mode 100644 index d9949039..00000000 Binary files a/music/pt3_player/HELLO and /dev/null differ diff --git a/music/pt3_player/Makefile b/music/pt3_player/Makefile index a3677683..8daded66 100644 --- a/music/pt3_player/Makefile +++ b/music/pt3_player/Makefile @@ -120,5 +120,5 @@ pt3_table_test.o: pt3_table_test.s \ clean: rm -f *~ TITLE.GR *.o *.lst \ - PT3_PLAYER PT3_TIMER PT3_DUMPER PT3_TABLE_TEST + PT3_PLAYER PT3_TIMER PT3_DUMPER PT3_TABLE_TEST HELLO diff --git a/vaporlock/fireworks/background_final.png b/vaporlock/fireworks/background_final.png index a4b8d0bf..ae46b6d1 100644 Binary files a/vaporlock/fireworks/background_final.png and b/vaporlock/fireworks/background_final.png differ diff --git a/vaporlock/rasterbars/sample.png b/vaporlock/rasterbars/sample.png index aa1feb58..ac87434b 100644 Binary files a/vaporlock/rasterbars/sample.png and b/vaporlock/rasterbars/sample.png differ