From a14e1a2f5e266ef880108cd3fe04bedf954cb72c Mon Sep 17 00:00:00 2001 From: SimonM Date: Wed, 6 Jul 2016 21:04:02 +0100 Subject: [PATCH] Added title screen (but problem with decoder), *run !boot --- beebtrk.6502 | 59 +++++++++++++++++++++--------------- beebtrk.ssd | Bin 204800 -> 204800 bytes data/loader_volume1.bin | 1 + data/loader_volume1.bin.exo | Bin 0 -> 255 bytes lib/beebtracker.s.6502 | 44 ++++++++++++++++++++++++++- make.bat | 2 +- 6 files changed, 79 insertions(+), 27 deletions(-) create mode 100644 data/loader_volume1.bin create mode 100644 data/loader_volume1.bin.exo diff --git a/beebtrk.6502 b/beebtrk.6502 index cc9651b..39aaaef 100644 --- a/beebtrk.6502 +++ b/beebtrk.6502 @@ -54,8 +54,10 @@ INCLUDE "lib/beebtracker.h.6502" \ * Start address to be saved \ ****************************************************************** -ORG CODE_ORIGIN ; code origin - assume standard BBC Micro -GUARD MODE7_base_addr ; ensure code size doesn't hit start of screen memory +LARGEST_VGM_SIZE = 20837 + +ORG CODE_ORIGIN ; code origin - assume standard BBC Micro +GUARD MODE7_base_addr-LARGEST_VGM_SIZE ; ensure code size plus size of largest VGM file doesn't hit start of screen memory .start @@ -92,6 +94,8 @@ INCLUDE "lib/beebtracker.s.6502" CLI + + JSR tracker_main \\ ***** Exit app entirely ***** \\ @@ -119,15 +123,29 @@ INCLUDE "lib/beebtracker.s.6502" .data_start -.menu_data_filename EQUS "BeebDat", 13 +.menu_data_filename EQUS "BeebDat", 13 +.loadscreen_data_filename EQUS "LSCREEN", 13 +\\ Need to put this macro last as I don't know how to undo the character map! +\\ +SET_TELETEXT_FONT_CHAR_MAP +\\ Scrolltext messages stored as font glyph byte offsets +.scrolltext_start -\ ****************************************************************** -\ * End address to be saved -\ ****************************************************************** +.demo_message +EQUS " Welcome to the Bitshifters Battle of the Bits BeebTracker Demo... Showcasing 27 awesome VGM chiptune music files that have been converted from other platforms to work on your 4Mhz BBC Micro and replayed on your SN76489 programmable sound chip! " ;You've never heard chip tunes like this before! This production was brought to you by Kieran and Scrubbly ", 0 + +.load_message +EQUS "Loading... ", 0 + +\\ ** ANY EQUS LINES AFTER THIS POINT WILL STILL CONTAIN REMAPPED CHARACTERS ** \\ + +.scrolltext_end + +\\ Clear character mappings +RESET_MAPCHAR -.end @@ -139,10 +157,16 @@ INCLUDE "lib/beebtracker.s.6502" .VGM_stream_data \\ Now loaded at run-time so don't know end of data! +INCBIN "data/loader_volume1.bin.exo" +\ ****************************************************************** +\ * End address to be saved +\ ****************************************************************** + +.end -ORG &0808 +ORG &0900 GUARD &0CFF .menu_data_start @@ -222,22 +246,7 @@ EQUS "Exit " ENDIF .menu_entries_end -\\ Need to put this macro last as I don't know how to undo the character map! -\\ -SET_TELETEXT_FONT_CHAR_MAP - -\\ Scrolltext messages stored as font glyph byte offsets -.scrolltext_start - -.demo_message -EQUS "BeebTracker scrolltext in the right place and now scrolled one pixel per frame. Looks pretty smooth! 0123456789?!. ", 0 - -.load_message -EQUS "Loading... ", 0 - -\\ ** ANY EQUS LINES AFTER THIS POINT WILL STILL CONTAIN REMAPPED CHARACTERS ** \\ -.scrolltext_end .menu_data_end @@ -282,7 +291,7 @@ PRINT "------------------------------------------------------------" \ ****************************************************************** -SAVE "BeebTrk", start, end, main +SAVE "!Boot", start, end, main SAVE "BeebDat", menu_data_start, menu_data_end PUTFILE "vgm_botb/BotB 7832 MasterTracker.raw.exo", "V.0", 0 @@ -312,7 +321,7 @@ PUTFILE "vgm_botb/BotB 20609 Jredd - PSG Strut.raw.exo", "V.O", 0 PUTFILE "vgm_botb/my_mission.raw.exo", "V.P", 0 PUTFILE "vgm_botb/my_new_used_car.raw.exo", "V.Q", 0 PUTFILE "vgm_botb/run_under_fire.raw.exo", "V.R", 0 - +;PUTFILE "data/loader_volume1.bin", "LSCREEN", 0 diff --git a/beebtrk.ssd b/beebtrk.ssd index ca7b2ff63240a457dd6cbc141b9508aec2681497..33d4097986f3b31f0c3ec811a2b930ea6ebea540 100644 GIT binary patch delta 2580 zcmai04{Q_X6~FU2cFyD)|B3&_jC`?iaF~Dq0TKwr1Sm-`p&>`&Kx}T9BsR)M*Ntgt zNgX8vs96-NIDobdSfSoBlx=*VncMUMIj5KK)&|r z&C#78bl{+Fl!&C$(>Xfv!8D;0r>SYXPQ<1ix{-9665J7l=(X!kICQ|uSTPV@iJ#@w zhuiU35bueV;+zuX>thH$o+uUHrv{bc{-G>!AF%3ES-`4`{%~AA{wtvyy>%&_4WWlu z;W42OxO^(bqu7+%(u&h41PAff>KC zGypLVe9Ba)Y+=6<+9%7!9NwSGzUBv?=6TNNO%{vK@cxPXRQA*pO^s;e{a5#<-UEIk z3Ds}XrLr~UHgdl z(|al2Uv?Kg%Z9b_b2hpuK5nDEJ=IzbhY1ewj>%JFoV1PJ7m&yXV~=L(2IJR%p^nIU zqkw;VgApS7t2uj@w~5 zay^vbjhrwF1(ApmCVbT>bVi~^7KwWcVo2w>_-Hy}oQ@i`_W)ytonOS7<<5s#7bw@m zh)1x2Bb{S!U;{#Da&m!qPk2B#37xcesBN$vs4apHid|4FA6yGXehnSu%jl4>jPBsH z0>b=JZ4EmzQ=|Z$KifLKf`a3OD@4IpP9&;(s^PAg;C=z9x!pfZE6hCOE*zhb93GAf3tE4dM(H zsWnGVn0vRGdn4wfJ{ivAar^GCD z%fdn^SVo%7Ay;Itd1SXaghVJazlUz*6oZX%{~}SvB1aojpIchV;du8#SU`Mu;eZPc z!T*@_*U(nJGHl(py}zFwwJGIc}q>Nzo<+zG-bkvc=9ov9_3tKfC- zjkKRXLd52UKQd%)TdJzHb>HT1eV_0&Y}&bHOC2H2`E(F=HR&Xz04W7bgru|vD3eti zAbgahL<0dkA(7gr7D-7E%77157Z5&4LpaH+SFcKxiR@6Ll(pU<{qll@b`X>tFJy3r zCAG=g6lkj_Bxf6CRZCi{ouFVaG$5JK5KKl8^^%&b4-viqp^>yc(kYR!3ZK+uM*~{Y z=Y(id>L7gu5?L?3K(_g$5vS>pq*SUUr&aAECA3~6`3MMq0S0)2q3SQ3ABkTKOHDq~ z;6t5GR0*GhBHJKXF6oM7Cs7S7SS}y2xUPWAf12!Wjk||Z;cmC<*=vgK?&C9OUjOO$ zlrd)I>GqTFz4nv7@>36%14S&y9R0_El6^Z|>#2&JH9ycC>kmx`JDeVrAvm-Yi2pyQn3n zUW!o9V>1uSR-LKJ+ESAycW&IY?Y9d4_pA2(t?0WSPbMFhuVNZ6@9^x}z6JcXZV>5E zE$x4Nx@sd?<@w~-N`Yb~V&&I_q`rIQQHkkL!21|J9Wa zr2ld8s@Jw(@iyM9xp>JgIgl@3e&y)M3eA}#F-4duQRM$R|6PnJRFu9{aI645R-hOv Hz|j8y%P#MI delta 2105 zcmah~4NM#789w_C|KTe>|DBC9{9%3)(~y#%=7*#rA<^nkHyyQy!vgLV2gNj*(spQD zCJ3zSp~~tZM;8f@igr73j4vq_S(>(j=>Xfz085ts5gJ?`1ZnH`if${@De?7md;G< zqh$&ioD(Fyw6I706E{Vvr>D!*9z-~`GRT$v>5~5V?E*9Rw_8RUs1VOnin$3g@MWrL zidvwuMv1)j4Wm0BFf+Hv5^W!yC0EV9UMp{aa%X9A$=EYQFfY}cpbhmao>WX6vNLF_ zlfwr7AnIWF*mBt%8U4G{*L$#JSl*@S>YbSG+_w(<*WtiAG~bD7Ch$gkoU7|8O0ls1 z4kf0oM^1OFG|YWD`ExQKefnq4(P0uJFqlh*vHu(PHiXSNN3TAN()CY7jdXwaNf-VQ zf%r@pMGzb&_`}K}bq6#w7hW!ERWlkp9sw;&rK7uD=zA_;rDxuVR=8GMd>nrW<(*<1 zwbNi12dF^JN3I2vYEzyHn2VS{H@}i>wbkG|?y@51r-E}wW6y0UjL!Fh-pv8w)z0q%6i11D)^DBX@ z5wqdWY;|sC_eO>%*>o|l-j~nJUlu1A`Y8O;u`czZ?w^~5}5l66GF(7vF!+X z{`>Ch7pgtj^23k^7~>I{kjVLdi`Zh?5_`+9m+7j0RHiF5*);UA<35MC3om(PHV%jQBY0~c z!M9=ye-!RxFx{u+BN72K`)iR?k~W*K&jKV%iPQk3t>S>$H}n(lda70LMk;wi@{LFE z7|MX<4ae79B==}1B_e$(ky*Nw;P@C=g*h*5uyDHcoZqJ}p;G67hP6_D^4Ld?pvKg$8m1B4_b?0_Zz$yz!pa>XPVv*!0dAG1tw2k%-sk~4qxQPBNE}u^fg^dEa7GlX_;8IWzG9Px8gZa!dQg5fVEtrsPD92)h%;;d0 zeL9eG5amSC+F`JXUs#*#Lw-!cifa5y?31fxmYlsx?*F{XVZ?;5?`>h*x;HGg*$xif zWjBu?Go$x-TJQ06K6=g{*=T=r=dV4o`qKK^xOtdh=RCX%KiE9WYn`y-g>CBn|Lvzr z{%ayto*LS|1*r4ezf+P`AUWI!a{b5271CqqreAhQ6*@4ILkE|{=-`%II(Q^EfYKtD zNgmYYm+Z>nut76VKY^MnRT4d03A$0UPB+cFp_WSN`6U+^DIo3Nxrt=~)~?MgJ=6iL z-J3`VNPFhpVwJsqS8b{JI$b`jGz{*&n{q(UP6RJF{z7=tC7cj{Y~N{u5AsRj#PwPG zM7iURtMsMh^waa$i~Xh3^UuEt{Ei%=XqrlO8_YqvyTF;dT2>YA|9?C_P|2Qb~3SZ)|9Ajc&2fvp# zhhV_oU}WR>A<8fZ+4d?S_nEjSQK~zFa>P9X%NUuUk22m_*GL$L#kL$uTXVND7y(>k250xnEfd=l}*A}R^ds!z9R7>0RD%Igsn0P F0D#|EX>0%h literal 0 HcmV?d00001 diff --git a/lib/beebtracker.s.6502 b/lib/beebtracker.s.6502 index d48fc13..8a3c56b 100644 --- a/lib/beebtracker.s.6502 +++ b/lib/beebtracker.s.6502 @@ -8,10 +8,14 @@ .tracker_main { + \\ Debounce LDA #&FF STA menu_key_held + \\ Present intro screen + JSR show_intro + \\ Install the menu data JSR load_menu_data @@ -607,7 +611,6 @@ LDA #LO(menu_data_filename) STA osfile_params + 0 LDA #HI(menu_data_filename) - ADC #0 STA osfile_params + 1 LDA #LO(menu_data_start) @@ -626,6 +629,45 @@ RTS } +\\ *** Show loading screen *** +.show_intro +{ +; \\ Set osfile param block +; LDA #LO(loadscreen_data_filename) +; STA osfile_params + 0 +; LDA #HI(loadscreen_data_filename) +; STA osfile_params + 1 + +; LDA #LO(VGM_stream_data) +; STA osfile_params + 2 +; LDA #HI(VGM_stream_data) +; STA osfile_params + 3 + +; LDA #0 +; STA osfile_params + 6 + +; \\ Issue osfile call +; LDX #LO(osfile_params) +; LDY #HI(osfile_params) +; LDA #&FF +; JSR osfile + + \\ Initialize compressed data stream + LDX #LO(VGM_stream_data) + LDY #HI(VGM_stream_data) + JSR exo_init_decruncher + + \\ unpack to screen + LDX #&00 + LDY #&7c + JSR exo_unpack + + + + JSR &FFE0 + RTS +} + .load_file_from_table ; flle_no = index into our table { diff --git a/make.bat b/make.bat index f4c9fe5..74ac36c 100644 --- a/make.bat +++ b/make.bat @@ -1,3 +1,3 @@ -..\..\Bin\beebasm.exe -i beebtrk.6502 -do beebtrk.ssd -boot BeebTrk -v +..\..\Bin\beebasm.exe -i beebtrk.6502 -do beebtrk.ssd -opt 2 -v