From 7af414d20e6006f19bdd70a6ad10cecb84211b2c Mon Sep 17 00:00:00 2001 From: 4am Date: Fri, 13 Aug 2021 20:53:38 -0400 Subject: [PATCH] assemble bootloader during build --- Makefile | 8 +- res/proboothd | Bin 512 -> 0 bytes src/proboothd/proboothd.a | 212 +++++++++++++++++++++++++++++++++++--- 3 files changed, 202 insertions(+), 18 deletions(-) delete mode 100644 res/proboothd diff --git a/Makefile b/Makefile index daa18f658..fc87517de 100644 --- a/Makefile +++ b/Makefile @@ -54,9 +54,9 @@ dsk: asm for f in res/TITLE.HGR/* res/TITLE.DHGR/*; do rsync --ignore-existing res/GAMEHELP/STANDARD build/GAMEHELP/$$(basename $$f); done bin/buildfileinfo.sh build/GAMEHELP "04" "8000" >>build/log $(CADIUS) ADDFOLDER build/"$(DISK)" "/$(VOLUME)/GAMEHELP" "build/GAMEHELP" >>build/log - bin/changebootloader.sh build/"$(DISK)" res/proboothd + bin/changebootloader.sh build/"$(DISK)" build/proboothd -asm: asmlauncher asmfx asmprelaunch +asm: asmlauncher asmfx asmprelaunch asmproboot asmlauncher: md $(ACME) -DBUILDNUMBER=`git rev-list --count HEAD` src/4cade.a 2>build/relbase.log @@ -70,8 +70,8 @@ asmprelaunch: md for f in src/prelaunch/*.a; do grep "^\!to" $${f} >/dev/null && $(ACME) $${f} >> build/log; done for f in res/TITLE.HGR/* res/TITLE.DHGR/*; do rsync --ignore-existing build/PRELAUNCH/STANDARD build/PRELAUNCH/$$(basename $$f); done -chd: dsk - chdman createhd -c none -i build/"$(DISK)" -o build/"$(DISK)".chd >>build/log +asmproboot: md + $(ACME) -r build/proboothd.lst src/proboothd/proboothd.a >> build/log compress: md for f in res/ACTION.HGR.UNCOMPRESSED/*; do o=res/ACTION.HGR/$$(basename $$f); [ -f "$$o" ] || ${EXOMIZER} "$$f"@0x4000 -o "$$o" >>build/log; done diff --git a/res/proboothd b/res/proboothd deleted file mode 100644 index a0a92b56cc4ef01db6fba43ddd1dc5fddebc8f7b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 512 zcmZSV^0=YXbfA~-KrhdMUWNm`Ob2>d4k+mVR*3kc(DF~A^Pj@xe+xKw{^HEVav2Z?&7i^vwR`{|isn zG0ClAmfLXt#74VQ7w)zFUm&>AZWWNT0;uoeCS|DXNe#~`>gu6z@nS}+Yr+MNj*b@B6$6)AsGqZkYmi=WWN?V9 kZ-|1wLWqK+f=`fwt3rT+50DwjFjBzfgXb2UJa>2<0G+ddMF0Q* diff --git a/src/proboothd/proboothd.a b/src/proboothd/proboothd.a index bfabb10af..0e03150ec 100644 --- a/src/proboothd/proboothd.a +++ b/src/proboothd/proboothd.a @@ -2,7 +2,7 @@ ;minimal open/read binary file in ProDOS filesystem ;copyright (c) Peter Ferrie 2016-2019 !cpu 6502 -!to "proboothd",plain +!to "build/proboothd",plain *=$800 ;zpage usage, arbitrary selection except for the "ProDOS constant" ones @@ -34,7 +34,11 @@ sta $c000 sta $c002 sta $c004 - jsr $fb2f + lda $c000 + cmp #$d3 + bne + + jsr seasons ++ jsr $fb2f jsr $fc58 jsr $fe84 jsr $fe89 @@ -42,19 +46,15 @@ ; print title - ldy #9 -- lda TOTAL-1,y - ora #$80 - sta $04B7-1,y - dey - bne - ldy #11 -- lda REPLAY-1,y - ora #$80 - sta $0536-1,y +- lda TOTAL-1, y + sta $04B6-1, y + lda REPLAY-1, y + sta $0536-1, y dey bne - pla + sta unit tax ; X = boot slot x16 ; Y = 0 @@ -177,18 +177,202 @@ retcall pla inx txa pha - rts +- rts fakeMLI_e +; Interactive Seasons demo +; based on Apple II Seasons -=DESiRE=- 128B Demo for Outline 2020 +; based on the code in Hellmood's 64B x86 demo 'Autumn' +; by deater (Vince Weaver) +; adapted by 4am for use within this bootloader +; /!\ While demo is running, press 1-4 to change color palettes +; or Esc to quit demo and continue the boot + +HGR2 = $F3D8 ; Set full-screen hi-res mode using page 2 ($4000) +HPLOT0 = $F457 ; Plot point, (Y,X) = Horizontal, (A=Vertical) +HCOLOR = $F6EC ; Set color in X, must be 0..7 + +seasons: + bit $c010 + jsr HGR2 + ldx #(copy_seasons_e-copy_seasons) +- lda copy_seasons-1, x + sta $30, x + dex + bne - + jmp seasons_forever + +copy_seasons: +; HGR ROM routines use +; $1C mask for color +; $26/$27 address for plot +; $30 color value * 17 +; $E0/$E1 X coord of last hplot +; so code starts at $31 and must end before $E0 +!pseudopc $31 { +EBP1 !byte 0 +EBP2 !byte 0 +EBP3 !byte 0 +EBP4 !byte 0 + +color_lookup_lookup: + !byte