From 7423b1d3eed5daa17700ee63638817b7a95aff39 Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Wed, 21 Feb 2018 20:32:40 -0500 Subject: [PATCH] chiptune_player: reads in the KRW file --- asm_routines/dos33_routines.s | 37 ++++++++++++++++++++++++------ chiptune_player/INTRO2.KRW | Bin 0 -> 9356 bytes chiptune_player/Makefile | 4 ++-- chiptune_player/chiptune_player.s | 37 +++++++++++++++--------------- 4 files changed, 50 insertions(+), 28 deletions(-) create mode 100644 chiptune_player/INTRO2.KRW diff --git a/asm_routines/dos33_routines.s b/asm_routines/dos33_routines.s index f8c7594e..db05df04 100644 --- a/asm_routines/dos33_routines.s +++ b/asm_routines/dos33_routines.s @@ -3,11 +3,9 @@ ; FIXME: make these a parameter ; filename -;disk_buff EQU $6000 -;read_size EQU $2A00 ; (3*256*14) -disk_buff EQU $4000 -read_size EQU $1000 ; 4kB +disk_buff EQU $2000 +read_size EQU $4000 ; 16kB ;; For the disk-read code ;RWTSL EQU $F0 @@ -40,7 +38,8 @@ FILEMANAGER EQU $3D6 ;================================ ; read from disk ;================================ - ; + ; FILENAME pointed to by INH:INL + ; OUTH:OUTL trashed ; read_file: jsr LOCATE_FILEM_PARAM ; $3DC entry point @@ -54,6 +53,30 @@ read_file: ; lda #0 ; 0 = text ; sta (FILEML),y + + ; copy filename into place + ldy #0 + lda #filename + sta OUTH + +filename_copy_loop: + lda (INL),y ; load byte + beq filename_pad_spaces ; if zero, done + ora #$80 ; convert to apple ascii + sta (OUTL),y ; store out + iny + bne filename_copy_loop + +filename_pad_spaces: + lda #$A0 ; filename needs ' ' padded + sta (OUTL),y + iny + cpy #31 ; fill 30 bytes + bne filename_pad_spaces + + ldy #8 ; filename ptr offset = 8 lda #4q$5T=s~SQ67>+kwtB9gu1hNM_nhH2#wYCXj!c%VgS`IBk-eR18$i*u>8E`F3v) zE`p*prjwR|)7|~{-S2z9_j#Y^efL<^wz}GyyViuO@7)$%UmLEe43}5ch3~7W-LfHE zSzEI;yt!)Q4wB02*MzszsAt|PcI zIx;dkIyy3HUkM&#l)WQuLL)X-+)Q+uV$DW#vmtWZc_u5Yswyn3t}5&-DCq1gEaXV2)!9-P#7yh8hr9ox~rV@JPzZ&1PmT(22X)tG z+Am2i=5jInCSAZ8Sr(Weq|RXA-bX8H60wR{BBszLe3t9vRp`DbPDXWlG}h1>kHuT# zxQNdhorC~g_C;!HVzJ2Wu_cw2(dd%J(fsoAii-SjMYO)DUZh2p3rG?vJ0_B-Q%#~S z5fy2n*hD7FTf4TbEHAGt*^i%OvR|RC7ukpBd@HtfJ^xnnr86Jp>^gvFX}f8;u!+Ro zq&`4e0Q(RoEk=HCn0#-LW>A~j!~}&x#Aqy^vDXw0mKvEL$!@o@pXhl}v8~XRR^};T z@>^CqUJ_dyH=rw`iK?2O*Ks*IG!BJwDwfVN8rxsc>+BeD+-UKmOnHx%^PQ zL?Y%AfEhi)XkBS(DP{u$i*SUc6nPq`sI)Xdx_#?>)gbXJ{MN&GG<9g2-|thsa62A+ znR&9Z@T(|_TgGbK?f@V8lHpNgQPTN3n>7sgWVvO9Hh4W4N!m_YDaNMx3roa|`5aZ- zU)m)s3PtscJWws$<1DrF7JfO36{1~& zIDLE<#&b{cx!l5#za%*!Ur|yXt5{VYYfZHF02l$fyP~8*A(u`q`3u95{4a(hI!&@z zc|)usUQ^N2I@HrT+}*11p(N0%SVcpGS|Z_`>ey5FYaTB#T$sA|*q|WLTL_Y86KYA1~d9>fY-CA1^X*e6K!BYcF26-9| zP>#BrkX`ThKVW&_?N=V@diI~$f}Qnbo^m|C72HX`Z0zao?&<027D$lD<0UCf-Utag zH4YCA4G#|w3FLySVYzW|U|?`?a3Fmml!Uh%Po6k&^5n@A0+B?G?QL!C?d@&WK`4RC z*-iF*f~|}i;|&e*c)Y>7s%-+4Fu)-7Y0`?3EP9!$Gc`uES@4fjo$G#PHv(sugI<{p7~c z9rk{m-E?tB>mn=2MGF=85 zgj4pu$KL8^bbzyVQFYwH>$od9bYift=Wu)L_nY=7;$N@-FhB<9_A)ZS_eq0F!0-W{ zEzGR#`J= zp-YgF5QaK~_4QP2v%nD%cY-MA^RO`JOCiaiWocu%Fm_TL^5SV?v*aKcnV=(uyV{`x-QBTR5B|D)6f!DWTPs956>V#aM%&w>s}hM-B0)$ZIXn{| z8j8n<@i#P#M}|qT;%{IOX3CnH%D@w)n3;9AL7NiEWCBvInQ}Vn zdVA~Y`g-e-u!BfG(oT*?QHv0tWFdxp%ZmDoAs}j!=kboIJe~(fwAnuJpW^B1PaJG- zX9IOvI{A@?A+<2(u%%y!{UZZ}A7lVeSF+{%NW?Av zA8-ekXyb?ph2?NFjyitbO@DSn3eF^u(gvz*1NXoHa}3-<)zsmLCa%`(kT@^Kd_0c# z+Ht(k=li4@u_QZI{S{1FawdIsbs`~Oz+HyD+EV{Gj@WJ7TNxogXT<`6iEP0&x^409 z=~EG}Dq~FZH?ze4Q^E|aGWX)~N@fXu8bWBULI0rl+H&cya}Rlx0LbhcE{Off4MZ}j zrF77dTHrM#F=W<`;bSlV+-|rHXRsOH^()+U7p{&PT2EUbN!7-X$X&lx_Hcj^|Fm1cpFomPWM3Ej()dxM0VUx`7 z^Z8Ni_?(<^Fhoa2*nkG z&=C3RbK$TYZsEFc%GaZhgz1~mjle4-BV7usVbc3c=>^D0fcMq+P$z}4SVtE=biXh8 z;=YyWP?=d5`g8kh@mst4%r9DtCX$aBg|8ku&|iyA)^}3SUYZ6r7k^g(+nR?fOt&dZ zB{9sgkH=$G3sA_d1IP_hR!cHcxo16z8>ome*luyk_a*_}z&$fn?=6mi#USLRTU)nl zm%Q&F*ICi|FB~L6mUArPF9M!9P!8!DEQAey_!=OE8?F0nkoHeU=er&0+Kjz>ebxTN zV$r30)qo51E|gM-16PBNdv$@=`S}#`gvA`p&^!sIJv|E?8-xq4K3<06h&eio)X7(Tp~LCMPvat=mm$6b<&>nQ-ra{-|InE>#00Le6E zUUcQY=@eWR3tH{oUvUA;xfUIiPpVh{?sO%VyAYKa8pgc0rICLZ`O#{AguCSl*teWw zrn|(`o5yE5Q;juXi1QXOM2qM}@Z1!Po?GlumROUp+^tyqH`Q%>U(?0Qb~|kWYJY#& zjmMfV%mT8HS+MytY^rrT$sc5ryR0@>;68e4s=4vs(opkk6R>e_Sx)@?^w0kI*>+TK zdQ`B<2rlU@$iR*hVxD=WY`8zQu;iYAMkqg4^$7oP7 zyjj4r-qkKirqf(NmpJns*th=&#r(`oT}wV|e3Pa~{^H^b;yOpZLkBFofH$?g?7mUu zp0J@4!FvbB-!SusN-BToPap*B*LD|!6z2V!T-r^njLY)>3w8P&2=y0SpSne!me*^L`ae4p% literal 0 HcmV?d00001 diff --git a/chiptune_player/Makefile b/chiptune_player/Makefile index 7f7f55db..b4e78f42 100644 --- a/chiptune_player/Makefile +++ b/chiptune_player/Makefile @@ -7,8 +7,8 @@ all: chiptune_player.dsk chiptune_player.dsk: CHIPTUNE_PLAYER OUT.0 $(DOS33) -y chiptune_player.dsk BSAVE -a 0x1000 CHIPTUNE_PLAYER - $(DOS33) -y chiptune_player.dsk SAVE B OUT.0 - $(DOS33) -y chiptune_player.dsk SAVE B OUT.LZ4 + $(DOS33) -y chiptune_player.dsk SAVE B INTRO2.KRW +# $(DOS33) -y chiptune_player.dsk SAVE B OUT.LZ4 # $(DOS33) -y chiptune_player.dsk BSAVE -a 0x6000 OUT.0 diff --git a/chiptune_player/chiptune_player.s b/chiptune_player/chiptune_player.s index 042cbdb1..36d7d832 100644 --- a/chiptune_player/chiptune_player.s +++ b/chiptune_player/chiptune_player.s @@ -2,8 +2,8 @@ .include "zp.inc" -LZ4_BUFFER EQU $4000 -CHUNK_BUFFER EQU $6000 +LZ4_BUFFER EQU $2000 ; 16k for now, FIXME: expand +CHUNK_BUFFER EQU $6000 ; 10.5k, $2A00 CHUNKSIZE EQU $3 ;============================= @@ -322,7 +322,7 @@ new_song: jsr clear_bottoms ; clear bottom of page 0/1 - lda #0 + lda #0 ; print LOADING message sta CH lda #21 sta CV @@ -338,6 +338,10 @@ new_song: ; init pointer to the music ;=========================== + lda #krw_file + sta INH jsr read_file @@ -358,11 +362,11 @@ new_song: jsr clear_bottoms ; clear bottom of page 0/1 - lda #file_info - sta OUTH - ldy #0 +; lda #file_info +; sta OUTH +; ldy #0 ; FIXME: optimize @@ -424,6 +428,12 @@ bloop3: rts +;========== +; filenames +;========== +krw_file: + .asciiz "INTRO2.KRW" + ;========= ;routines ;========= @@ -440,17 +450,6 @@ bloop3: .include "rasterbars.s" .include "volume_bars.s" -;=========== -; File info -;=========== -file_info: -.byte 1 -.asciiz "INTRO2: JUNGAR OF BIT WORLD FROM KIEV" -.byte 5 -.asciiz "BY: SURGEON (ALEKSEY LUTSENKO)" -.byte 15 -.asciiz "0:00 / 0:00" - ;========= ; strings ;=========