From 8a73202fa3dba96dd272dc079922d914c2a021e0 Mon Sep 17 00:00:00 2001 From: pkali Date: Sun, 11 Sep 2022 20:32:16 -0400 Subject: [PATCH] rmtplayr_modified.asm <-- simplified and working RMT player --- artwork/sfx/rmtplayr_modified.asm | 635 ++++++++++++++++++++++++++++++ definitions.asm | 21 +- scorch.asm | 103 ++--- scorch.xex | Bin 31374 -> 50160 bytes variables.asm | 27 +- 5 files changed, 721 insertions(+), 65 deletions(-) create mode 100644 artwork/sfx/rmtplayr_modified.asm diff --git a/artwork/sfx/rmtplayr_modified.asm b/artwork/sfx/rmtplayr_modified.asm new file mode 100644 index 0000000..8a62912 --- /dev/null +++ b/artwork/sfx/rmtplayr_modified.asm @@ -0,0 +1,635 @@ +; +; Raster Music Tracker, RMT Atari routine version 1.20090108 +; (c) Radek Sterba, Raster/C.P.U., 2002 - 2009 +; http://raster.atari.org +; +; Warnings: +; +; 1. RMT player routine needs 19 itself reserved bytes in zero page (no accessed +; from any other routines) as well as cca 1KB of memory before the "PLAYER" +; address for frequency tables and functionary variables. It's: +; a) from PLAYER-$03c0 to PLAYER for stereo RMTplayer +; b) from PLAYER-$0320 to PLAYER for mono RMTplayer +; +; 2. RMT player routine MUST (!!!) be compiled from the begin of the memory page. +; i.e. "PLAYER" address can be $..00 only! +; +; 3. Because of RMTplayer provides a lot of effects, it spent a lot of CPU time. +; +; STEREOMODE equ 0..3 ;0 => compile RMTplayer for 4 tracks mono +; ;1 => compile RMTplayer for 8 tracks stereo +; ;2 => compile RMTplayer for 4 tracks stereo L1 R2 R3 L4 +; ;3 => compile RMTplayer for 4 tracks stereo L1 L2 R3 R4 + +TRACKS equ 4 +; RMT FEATures definitions file +; For optimizations of RMT player routine to concrete RMT modul only! + icl "feat.txt" +;FEAT_EFFECTS equ FEAT_EFFECTVIBRATO||FEAT_EFFECTFSHIFT +; +; RMT ZeroPage addresses +.zpvar p_tis .word ;= RMT_Zero_Page_V +p_instrstable = p_tis +.zpvar p_trackslbstable .word +.zpvar p_trackshbstable .word +.zpvar p_song .word +.zpvar ns .word +.zpvar nr .word +.zpvar nt .byte +.zpvar reg1 .byte +.zpvar reg2 .byte +.zpvar reg3 .byte +.zpvar tmp .byte + org PLAYER-$400+$e0 +track_variables +trackn_db .ds TRACKS +trackn_hb .ds TRACKS +trackn_idx .ds TRACKS +trackn_pause .ds TRACKS +trackn_note .ds TRACKS +trackn_volume .ds TRACKS +trackn_distor .ds TRACKS +trackn_shiftfrq .ds TRACKS +trackn_instrx2 .ds TRACKS +trackn_instrdb .ds TRACKS +trackn_instrhb .ds TRACKS +trackn_instridx .ds TRACKS +trackn_instrlen .ds TRACKS +trackn_instrlop .ds TRACKS +trackn_instrreachend .ds TRACKS +trackn_volumeslidedepth .ds TRACKS +trackn_volumeslidevalue .ds TRACKS +trackn_effdelay .ds TRACKS +trackn_effvibratoa .ds TRACKS +trackn_effshift .ds TRACKS +trackn_tabletypespeed .ds TRACKS +trackn_tablenote .ds TRACKS +trackn_tablea .ds TRACKS +trackn_tableend .ds TRACKS +trackn_tablelop .ds TRACKS +trackn_tablespeeda .ds TRACKS +trackn_command .ds TRACKS +trackn_filter .ds TRACKS +trackn_audf .ds TRACKS +trackn_audc .ds TRACKS +trackn_audctl .ds TRACKS +v_aspeed .ds 1 +track_endvariables + org PLAYER-$100-$140-$40+2 +INSTRPAR equ 12 +tabbeganddistor + dta frqtabpure-frqtab,$00 + dta frqtabpure-frqtab,$20 + dta frqtabpure-frqtab,$40 + dta frqtabbass1-frqtab,$c0 + dta frqtabpure-frqtab,$80 + dta frqtabpure-frqtab,$a0 + dta frqtabbass1-frqtab,$c0 + dta frqtabbass2-frqtab,$c0 +vibtabbeg dta 0,vib1-vib0,vib2-vib0,vib3-vib0 +vib0 dta 0 +vib1 dta 1,-1,-1,1 +vib2 dta 1,0,-1,-1,0,1 +vib3 dta 1,1,0,-1,-1,-1,-1,0,1,1 +vibtabnext + dta vib0-vib0+0 + dta vib1-vib0+1,vib1-vib0+2,vib1-vib0+3,vib1-vib0+0 + dta vib2-vib0+1,vib2-vib0+2,vib2-vib0+3,vib2-vib0+4,vib2-vib0+5,vib2-vib0+0 + dta vib3-vib0+1,vib3-vib0+2,vib3-vib0+3,vib3-vib0+4,vib3-vib0+5,vib3-vib0+6,vib3-vib0+7,vib3-vib0+8,vib3-vib0+9,vib3-vib0+0 + org PLAYER-$100-$140 + org PLAYER-$100-$100 +frqtab + ERT [255 +; ldy #0 +; tya +;ri0 sta track_variables,y +; sta track_endvariables-$100,y +; iny +; bne ri0 +; ELS + ldy #track_endvariables-track_variables + lda #0 +ri0 sta track_variables-1,y + dey + bne ri0 +; EIF + ldy #4 + lda (ns),y + sta v_maxtracklen + iny + lda (ns),y + sta v_speed + ldy #8 +ri1 lda (ns),y + sta p_tis-8,y + iny + cpy #8+8 + bne ri1 + pla + pha + asl @ + asl @ + clc + adc p_song + sta p_song + pla + php + and #$c0 + asl @ + rol @ + rol @ + plp + adc p_song+1 + sta p_song+1 + jsr GetSongLineTrackLineInitOfNewSetInstrumentsOnlyRmtp3 +rmt_silence + lda #0 + sta $d208 + ldy #3 + sty $d20f + ldy #8 +si1 sta $d200,y + dey + bpl si1 + lda #FEAT_INSTRSPEED + rts +GetSongLineTrackLineInitOfNewSetInstrumentsOnlyRmtp3 +GetSongLine + ldx #0 + stx v_abeat +nn0 +nn1 txa + tay + lda (p_song),y + cmp #$fe + bcs nn2 + tay + lda (p_trackslbstable),y + sta trackn_db,x + lda (p_trackshbstable),y +nn1a sta trackn_hb,x + lda #0 + sta trackn_idx,x + lda #1 +nn1a2 sta trackn_pause,x + lda #$80 + sta trackn_instrx2,x + inx +xtracks01 cpx #TRACKS + bne nn1 + lda p_song + clc +xtracks02 adc #TRACKS + sta p_song + bcc GetTrackLine + inc p_song+1 +nn1b + jmp GetTrackLine +nn2 + beq nn3 +nn2a + lda #0 + beq nn1a2 +nn3 + ldy #2 + lda (p_song),y + tax + iny + lda (p_song),y + sta p_song+1 + stx p_song + ldx #0 + beq nn0 +GetTrackLine +oo0 +oo0a + lda #$ff +v_speed equ *-1 + sta v_bspeed + ldx #-1 +oo1 + inx + dec trackn_pause,x + bne oo1x +oo1b + lda trackn_db,x + sta ns + lda trackn_hb,x + sta ns+1 +oo1i + ldy trackn_idx,x + inc trackn_idx,x + lda (ns),y + sta reg1 + and #$3f + cmp #61 + beq oo1a + bcs oo2 + sta trackn_note,x + iny + lda (ns),y + lsr @ + and #$3f*2 + sta trackn_instrx2,x +oo1a + lda #1 + sta trackn_pause,x + ldy trackn_idx,x + inc trackn_idx,x + lda (ns),y + lsr @ + ror reg1 + lsr @ + ror reg1 + lda reg1 + and #$f0 + sta trackn_volume,x +oo1x +xtracks03sub1 cpx #TRACKS-1 + bne oo1 + lda #$ff +v_bspeed equ *-1 + sta v_speed + sta v_aspeed + jmp InitOfNewSetInstrumentsOnly +oo2 + cmp #63 + beq oo63 + lda reg1 + and #$c0 + beq oo62_b + asl @ + rol @ + rol @ + sta trackn_pause,x + jmp oo1x +oo62_b + iny + lda (ns),y + sta trackn_pause,x + inc trackn_idx,x + jmp oo1x +oo63 + lda reg1 + bmi oo63_1X + iny + lda (ns),y + sta v_bspeed + inc trackn_idx,x + jmp oo1i +oo63_1X + cmp #255 + beq oo63_11 + iny + lda (ns),y + sta trackn_idx,x + jmp oo1i +oo63_11 + jmp GetSongLine +p2xrmtp3 jmp rmt_p3 +p2x0 dex + bmi p2xrmtp3 +InitOfNewSetInstrumentsOnly +p2x1 ldy trackn_instrx2,x + bmi p2x0 + jsr SetUpInstrumentY2 + jmp p2x0 +rmt_sfx + sta trackn_note,x + lda #$f0 ;* sfx note volume*16 +RMTSFXVOLUME equ *-1 ;* label for sfx note volume parameter overwriting + sta trackn_volume,x +SetUpInstrumentY2 + lda (p_instrstable),y + sta trackn_instrdb,x + sta nt + iny + lda (p_instrstable),y + sta trackn_instrhb,x + sta nt+1 + lda #1 + sta trackn_filter,x + tay + lda (nt),y + sta trackn_tablelop,x + iny + lda (nt),y + sta trackn_instrlen,x + iny + lda (nt),y + sta trackn_instrlop,x + iny + lda (nt),y + sta trackn_tabletypespeed,x + sta trackn_tablespeeda,x + iny + lda (nt),y + sta trackn_audctl,x + iny + lda (nt),y + sta trackn_volumeslidedepth,x + ldy #8 + lda (nt),y + sta trackn_effdelay,x + iny + lda (nt),y + tay + lda vibtabbeg,y + sta trackn_effvibratoa,x + ldy #10 + lda (nt),y + sta trackn_effshift,x + lda #128 + sta trackn_volumeslidevalue,x + sta trackn_instrx2,x + asl @ + sta trackn_instrreachend,x + sta trackn_shiftfrq,x + tay + lda (nt),y + sta trackn_tableend,x + adc #0 + sta trackn_instridx,x + lda #INSTRPAR + sta trackn_tablea,x + tay + lda (nt),y + sta trackn_tablenote,x +xata_rtshere + rts +rmt_play +rmt_p0 + jsr SetPokey +rmt_p1 +rmt_p2 + dec v_aspeed + bne rmt_p3 + inc v_abeat + lda #$ff +v_abeat equ *-1 + cmp #$ff +v_maxtracklen equ *-1 + beq p2o3 + jmp GetTrackLine +p2o3 + jmp GetSongLineTrackLineInitOfNewSetInstrumentsOnlyRmtp3 +go_ppnext jmp ppnext +rmt_p3 + lda #>frqtab + sta nr+1 +xtracks05sub1 ldx #TRACKS-1 +pp1 + lda trackn_instrhb,x + beq go_ppnext + sta ns+1 + lda trackn_instrdb,x + sta ns + ldy trackn_instridx,x + lda (ns),y + sta reg1 + iny + lda (ns),y + sta reg2 + iny + lda (ns),y + sta reg3 + iny + tya + cmp trackn_instrlen,x + bcc pp2 + beq pp2 + lda #$80 + sta trackn_instrreachend,x +pp1b + lda trackn_instrlop,x +pp2 sta trackn_instridx,x + lda reg1 + and #$0f + ora trackn_volume,x + tay + lda volumetab,y + sta tmp + lda reg2 + and #$0e + tay + lda tabbeganddistor,y + sta nr + lda tmp + ora tabbeganddistor+1,y + sta trackn_audc,x +InstrumentsEffects + lda trackn_effdelay,x + beq ei2 + cmp #1 + bne ei1 + lda trackn_shiftfrq,x + clc + adc trackn_effshift,x + clc + ldy trackn_effvibratoa,x + adc vib0,y + sta trackn_shiftfrq,x + lda vibtabnext,y + sta trackn_effvibratoa,x + jmp ei2 +ei1 + dec trackn_effdelay,x +ei2 + ldy trackn_tableend,x + cpy #INSTRPAR+1 + bcc ei3 + lda trackn_tablespeeda,x + bpl ei2f +ei2c + tya + cmp trackn_tablea,x + bne ei2c2 + lda trackn_tablelop,x + sta trackn_tablea,x + bne ei2a +ei2c2 + inc trackn_tablea,x +ei2a + lda trackn_instrdb,x + sta nt + lda trackn_instrhb,x + sta nt+1 + ldy trackn_tablea,x + lda (nt),y + sta trackn_tablenote,x + lda trackn_tabletypespeed,x +ei2f + sec + sbc #1 + sta trackn_tablespeeda,x +ei3 + lda trackn_instrreachend,x + bpl ei4 + lda trackn_volume,x + beq ei4 + tay + lda trackn_volumeslidevalue,x + clc + adc trackn_volumeslidedepth,x + sta trackn_volumeslidevalue,x + bcc ei4 + tya + sbc #16 + sta trackn_volume,x +ei4 + lda reg2 + sta trackn_command,x + and #$70 + beq cmd0 +cmd1 + lda reg3 + jmp cmd0c +cmd2 +cmd3 +cmd4 +cmd5 +cmd6 +cmd7 +cmd0 + lda trackn_note,x + clc + adc reg3 +cmd0a + clc + adc trackn_tablenote,x + cmp #61 + bcc cmd0a1 + lda #0 + sta trackn_audc,x + lda #63 +cmd0a1 + tay + lda (nr),y + clc + adc trackn_shiftfrq,x +cmd0c + sta trackn_audf,x +pp9 +ppnext + dex + bmi rmt_p4 + jmp pp1 +rmt_p4 + lda trackn_audctl+0 + ora trackn_audctl+1 + ora trackn_audctl+2 + ora trackn_audctl+3 + tax +qq1 + stx v_audctl + lda trackn_command+0 + bpl qq2 + lda trackn_audc+0 + and #$0f + beq qq2 + lda trackn_audf+0 + clc + adc trackn_filter+0 + sta trackn_audf+2 + lda #0 + sta trackn_audc+2 +qq1a + txa + ora #4 + tax +qq2 + lda trackn_command+1 + bpl qq3 + lda trackn_audc+1 + and #$0f + beq qq3 + lda trackn_audf+1 + clc + adc trackn_filter+1 + sta trackn_audf+3 + lda #0 + sta trackn_audc+3 +qq2a + txa + ora #2 + tax +qq3 + cpx v_audctl + bne qq5 +qq5 + stx v_audctl +rmt_p5 + lda #$ff +v_ainstrspeed equ *-1 + rts +SetPokey + ldy #$ff +v_audctl equ *-1 + lda trackn_audf+0 + ldx trackn_audc+0 + sta $d200 + stx $d201 + lda trackn_audf+1 + ldx trackn_audc+1 + sta $d200+2 + stx $d201+2 + lda trackn_audf+2 + ldx trackn_audc+2 + sta $d200+4 + stx $d201+4 + lda trackn_audf+3 + ldx trackn_audc+3 + sta $d200+6 + stx $d201+6 + sty $d208 + rts +RMTPLAYEREND diff --git a/definitions.asm b/definitions.asm index 25bb623..8defb80 100644 --- a/definitions.asm +++ b/definitions.asm @@ -5,16 +5,27 @@ screenBytes = 40 screenwidth = screenBytes*8 ; Max screenwidth = 512!!! TankWidth = 8 + .if target = 5200 +;---------------------------------------------- +; Player/missile memory +PMGraph = $1800 ; real PM start = PMGraph + $0300 +; Generated tables +linetableL = PMGraph + $0300 - (screenHeight+1)*2 +linetableH = PMGraph + $0300 - (screenHeight+1) +display = $2010 ;screen takes $1f68 because it has screenHeight+1 lines because of out of screen tracer(?) +;rmtplyr len = $393, align to the beginning of the page. +rmt_compilation_addr = ((linetableL - $393) / $100)*$100 ; $1500 for now +rmt_memory_start = rmt_compilation_addr - $320 ; $11e0 for now + .else ;---------------------------------------------- ; Player/missile memory PMGraph = $0800 ; real PM start = $0b00 - - ; Generated tables -linetableL = $0b00 - (screenHeight+1)*2 -linetableH = $0b00 - (screenHeight+1) - +linetableL = PMGraph + $0300 - (screenHeight+1)*2 +linetableH = PMGraph + $0300 - (screenHeight+1) display = $1010 ;screen takes $1f68 because it has screenHeight+1 lines because of out of screen tracer(?) + .endif +;---------------------------------------------- margin = 40 ;mountain drawing Y variable margin MaxPlayers = 6 diff --git a/scorch.asm b/scorch.asm index fb85659..6e428fc 100644 --- a/scorch.asm +++ b/scorch.asm @@ -3,39 +3,9 @@ ;--------------------------------------------------- ;by Tomasz 'pecus' Pecko and Pawel 'pirx' Kalinowski ;Warsaw 2000,2001,2002,2003,2009,2012,2013 -;Miami&Warsaw 2022 -;you can contact us at pecus@poczta.fm or pirx@5oft.pl -;home page of this project is https://github.com/pkali/scorch_src +;Miami & Warsaw 2022 -;this source code was compiled under OMC65 crossassembler -;(https://github.com/pkali/omc65) -;and on 2012-06-21 translated to mads -; -;game source code is split into 5+2 parts: -;scorch.asm is the main game code (with many assorted routines) -;grafproc.asm - graphics routines like line or circle -;textproc.asm - text routines like list of weapons and shop -;variables.asm - all non-zero page variables and constans -;display.asm - display lists and text screen definitions -;ai.asm - artificial stupidity of computer opponents -;weapons.asm - general arsenal of tankies - -;we were trying to use as much macros and pseudoops as possible -;they are defined in atari.hea and macro.hea files together with many -;atari constans. This way it shoud be relatively easy to -;port this code to e.g. C64 -; -;After those N years of working on this piece of code -;we are sure it would be much wiser to write it in C, Action! -;or MadPascal but on the other hand it is so much fun to type 150 chars -;where you want to have y=ax+b :) -; -;originally most variables were in Polish, comments were sparse -;but we wanted to release this piece of code to public -;and due to being always short of time/energy (to finish the game) -;we decided it must go in 'English' to let other people work on it - -.def target = 5200 ; or 800 +.def target = 800 ;5200 ; or 800 .macro build dta d"1.13" ; number of this build (3 bytes) @@ -169,9 +139,11 @@ ;Game loading address .IF target = 5200 - ORG $3000 + ORG rmt_memory_start - (variablesEnd - OneTimeZeroVariables + 1) + icl 'variables.asm' + ORG $4000 .ELSE - ORG $3000 + ORG $3000 .ENDIF WeaponFont @@ -218,6 +190,20 @@ FirstSTART cpy #screenheight+1 bne @- +; .if target = 5200 +; ; move RMT player from ROM to RAM (it modifies itself) +; mwa #PlayerBlob temp +; mwa #PlayerBlobDest temp2 +;@ +; ldy #0 +; lda (temp),y +; sta (temp2),y +; inw temp +; inw temp2 +; cpw temp #PlayerBlobEnd +; bne @- +; .endif + ; RMT INIT lda #$f0 ;initial value @@ -1693,26 +1679,49 @@ noingame TankFont ins 'artwork/tanksv3.fnt',+0,352 ; 44 characters only ;---------------------------------------------- - icl 'variables.asm' + .if target != 5200 + icl 'variables.asm' + .endif ;---------------------------------------------- -; reserved space for RMT player +;RMT PLAYER and song loading shenaningans + + .IF target = 5200 +;---------------------------------------------- + ; 5200 memory layout +PLAYER = $1500 +;RASTERMUSICTRACKER = PLAYER +;RMTSFXVOLUME = $1669 +PlayerBlobDest = $1282 +PlayerBlob + ; this is rmtplayr.a65 compiled with artwork/sfx/rmt_player_bin_blob.asm + ; the compiled .xex was loaded to atari memory in Altirra and saved with + ; .writemem rmtplr_blob.bin 1282 L614 + ; I hate this solution, but the alternative would be rewriting RMT player so it uses no ORG inside + ; the player in 5200 mode takes memory from $11E0 !!! + ; WARNING!!!! Adding zpage vars require recompilation of rmt_player_bin_blob.asm !!!!!!!! +; ins 'artwork/sfx/rmtplr_blob.bin' +PlayerBlobEnd + ORG PLAYER + icl 'artwork/sfx/rmtplayr.a65' + .align $100 + org $b400 + +MODUL + ;opt h- ;RMT module is standard Atari binary file already + ins "artwork/sfx/scorch_SFX-only-str.rmt",+6 ;so remove the header to reallocate + ;opt h+ + .ELSE +;---------------------------------------------- + ; normal (A800) memory layout + ; reserved space for RMT player .ds $0320 .align $100 PLAYER - .ECHO 'PLAYER: ',* - icl 'artwork/sfx/rmtplayr.a65' - - .IF target=5200 + icl 'artwork/sfx/rmtplayr_modified.asm' MODUL equ $b000 ;address of RMT module opt h- ;RMT module is standard Atari binary file already - ins "artwork/sfx/scorch_SFX-only-str.rmt" ;include music RMT module - opt h+ - - .ELSE -MODUL equ $b000 ;address of RMT module - opt h- ;RMT module is standard Atari binary file already - ins "artwork/sfx/scorch_str6.rmt" ;include music RMT module + ins "artwork/sfx/scorch_str6.rmt" ;include music RMT module opt h+ .ENDIF ; diff --git a/scorch.xex b/scorch.xex index f827974bd602baf8a9518713a313c3726423e25e..2027e71047404a33a4016db8c162d3f5217f7590 100644 GIT binary patch literal 50160 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:w|pn>5iBWO0V=s_BTyLh|U+K|hVNU{lkV&IVuDl(>6X2u}dh+a{hIcXSme z-|o!Z(^({ZZ6$Fr!(u+qE_5;ehW9^wX|w8v&aTEjZ}7rB*@f1je4{E&fnSxbobiwS z_S3Cye3962!~Q0w&v+OFj4m%9TpJ@s2*{~^<d!d-&(C=tdD^SXagq2MK82UD@=LV`4#8E9Qt3o>XLV@-Vy#@7Xu4< zwd$Wbi^z(z0zb#l-C|4w%E zb{W3PCG5&bTh?{n`?wD8gC5+|Pj=nU*jSlNoeWRKPLkoP*jDlK*1iO;sVn>ch7dMG z2z84qNl1WbNGJ&f97LwIZcX>v&eZw+3QCYv1w|ubYsBR#6%j05q-_W#d9qkK(AHX8 zQQC3CI!;_`XU5U_|0>lknznXYr!Dz??|n%?ZD;25`}`l5_wKpNx#ymH?tbo#!p&{z z80F?_L0+A5_nIqXk;os%y1mEpUmxf0j()jjw7dK1mutqjFX6*2hYL2_dHa{ZjIq|2 zz`cSm=Qw4-!hBZg6t-%b1sjy|K=)`$_ZW9mWS1Q^&wKswdd^cy!(!<4F@`$R-LFjt zVc3pH25J09Tn&Gg+rpm-(WBr$!W`-&^iXH7Om|yeS(M)v&UNygn9oZW^PSjL;5yq> zNU<8cs1zp9%(s3~z?VVSOHt9Gsv3bXr&&!rjky)(xAhbqC8jOyUm-bI@BMQ=lq0I? zTmgC?m~mA93?aAuD;xnrLW%yn1pjuh+FO^eR4-%XO}#nS9qU|wJmT~vaqVp%q3Lt7 zrmyW7C;;nkVueq|l(LcZ&oK&9vmcy;xs|{;8wSQ)Lj+X1o6y}HmTtIrVluO3mK){p z6bN|w^;vGJ`BoY%B5}>%oLEZE#`qPIwxg{tKr)7}qia6J1cV7sYu8h{DVLmoa~?*^ z`weac_}qzs^cT*yzx`~sZlvSbEO%NA-^qxvEJe!PnYJ@G(r>9>gk{AWvP7LO-r@w| z2&idG%ao+7?U7J7MJIqz&4fy5;WRn{B$xoAkK)!sfAU~hQ_~HzK!GPsMBqmI20F%X z;G9gs(%z=zmRF^rQx2)>TV7gRJflg}-hH)ptG!7angwjNqsbluUBgl+9tsSkv7{I> zF1KNvN+$tW*n;;xbbfGmBe#S4553j@G3x(dz<>N8|E9!_D@e4s^)O|l*s^AEPlOL` z7N|Y!y%x}YWy2XLSwn}mO@=v3vqZUb2^3HvG9QaUNKfbj>vZ_N6hrTL6z}I8QY_a!Kh8u`K|LsstVLg0PO^% zWGZnKn$Y>Ju3xe0y-iqz>3)BcjX1Zmkm#TotyoLJzzZ`x+%==Tbm1%S_xWw#qp)is z(mu4nN^S+lpv!x=vU%w>pQX#5CO+)Fp0$2|Tgt`#v$*{jR<&;}KfHgx_xh_iTagwm zs2LyjekE8iy)8ey3IABF#HhF&r!LCTSgo*(EgR6Z#TahSQ;oa1%{41?guP7^;?sc% z9Htj^2NYD@JlOAIv(?S$^WwVf4Xbm|(_jVQSWa7X&G{V4wV{x{V>tlY<{^46x7-r7 z^xxw76U77Va*(hsL;?`KlvDF^PR%PhHO?FmghCrjSNcXGSQPxQqAJWcCoV+t&K&+I zi2Ebj_&=pd+g8^c%>jnq9N$Q~#7sLbLOZTD2i)LsG-ulKBKzQf-VVG+LMYLe0p1sa zK>+q!+v$Gmj zp$;vB5M!$~RIeIJ1GDRV&udk?FV#}IAt_QPi9O=|4$UId=x*~j7YdG-KCwefXED8^ zm3^nK+^eQht$<^}nFD~HfEGM9tMctmfSOm8P7w2z5MdL7pNkIX&ha&pEs|PE9VV@g=ZYy7RaSQis#MY!|;aLyQ=OXHpp3CCv;aSf=2hZpD=h8+f_R^4Ad#-N- zW`-LrO_)&ETc2mHFCf@CTn{yrUk8y|50Tn{k;O)Cg{9XHr*b&0fRi0g%MnoIm7|(j zS93-D3Tq`d-|_{ry82={;7Sa%<|9ZL4Pv*h;tH|y=Du`tv?|@iZ^F|Qqln{`?Q<_0B6ofdYqRJ2GSuN$3@on5@lrvO( zxvB{K@l{-PM3sWCwu!lFo;y(0X;#Y1`<5zr&K8AW)jnxjOx8v2ayVCQxxW11<}AMI zauip^S2IV274a<}EJvK1_mZ%W(`8)>qTaAUhlzjFx|u7gIoZg+1#o`NsYYZZi+}SX zT=};y!->IN7g-FzR=^!6>1OmPY(@j1=r#{RxAbSx!Sx1oEXL2F%NGu}HIX)K@q|uw z7{O6`s^c?y=z^fVM^le}fgS@QHM3kb_uvRejm5S7HS`p^$kzR@bzZ}$+vf9@%bkaXQwj+RtltB79o+z7EAMfDI_Wk> zcVMlbE{>jJEACWH*E>>JVV6Vy^~FZqG&TcdaPM;;9Fd==^HbU#VqY4nj8t{7uXKAU zJu`p}X@qK}Q~T6LZ<&o6uHW2=_(_r(}F_7bLK=vobz0Zb{o-YB^Z3=blZp^_$Zf zhDBTS892)WZDYO_GG?P)KafDMig_z%E3y?8^Ti6A9yo_!h%BJ>-UhS`WSG4abN7^L zs7~Hp4dsU-g)Nb@H<1gH&T-A+{dTXkt61lY#>!aL5$`o>ht2z`Z%oKDE}A+Co-~;E z(CInIB` zLdb#~7a?;YbjolXP|Jr3?hWH_@D^-1umYP=MK~ro7{bu`bUvEI%VI%)yA3MBkkp_q z=0Usnt2XfsPJ+4|JU$PE4LM*O%0l)rjn0tsm%(t%84eEuj=B)qLwrQ7YB09OMr2F9ib9awRoq8f!jk zv`vxpVkqkukq!ofPQhB9K)}m%OpCoI1QcKSh;9_}+k3^{2w}UBW?F1{pKghQ z6+_!lWhgc=J>T@=`fc!GEf9?%Wn86e7c2*ZI0u}JM6te zM=4Yr<9Upsnz)rf*Me=Gir&MRc|yCl?J$l?)ZFb--dovKJo)u%VGS}xSW`ZBx66CE zuL32wQeZnDJT#H#eK#NaoV*v^#&He@CA@4&<2YT?puib!4S(GBDrQwo@q?D)5ZVK8 zU9;70`TMFqsIK-N_Ff7)^{qh~Yx~#)>6!bp0ti{Q@{1z87~r6*hRd{M_{xV*KNc1M1&{IP&`Xw&hEI&oJ;yHK+HN~V@w z(Rg#+AK3)y21XW4nrL#=FLChwNGYv6=x) z5D}?kybC8f`6W2z$(P}jXLI;#(XKC|UB2-k@#8p`cLb>XIK~D2&QY$9M`4Ew#5T|~ zpnuK}QQX`4%>b>P8s0jKFMM*=EUtKa(VmiMMhai3i);reQC-E1j{HDf$p6K_UBxr~ zlebsr^9wnso^mA-i;_x`0{;qrkxk7l;!A9=a3xqeTQt+(V8)JOLk^ZOzoNcT+@iX$ zzM!85BGjO#e*cn*d{Nfr$acm-Ml`tRE4)wRD$%>{)4EDhUH2uqN(`?1l3gW6*L^9j zk~G(SI#~u*Tv;V%S4obmB*RrQ*;R6ft0dP|lIbd$;ws5qOjt|*Fgg$oUcW#{3c`%ultnW!bB9a%g(=aJm5xK7KU}A``xh568K5E zRLOX_4?HBz;;u#d``z;J33#I8Knc$J=D6B?PRcx|9y?)+uoK3(dPIH_6QW{Fh-`y| zkqRXJ_Z0KBSd_nskLF+E<1g~-i1%oK4VsVT;z6un;H~Tk_nydaT5-eb5-zmGX7ZGv zT0+OBMl3`@ha?|86MDZJx@C+tF<|VrH*%XXisX3Z$aScz8$RisQ#UdT3d6KTk)ScQ z+UO_&YQ*xPg7Pr+z#vNSpaT*y#_{tnQ{?wlL&KH_21!W$mujGK?{aT*93~>4crp3o zth+H;DFoU84vTwT7SCN|u0R7f%nsDFP6{k5L3p5$(otiexvAQ>3{0q8gn$ zKc=;+YPV?pjNN4Yj3&vz%6o8mfwwm}8>{4fbfe8qRXmpGC#}D0{i*d^xLurN!^0cm z)}u9rZu|9K8C^bV4I+c4$8_!#?n1tkE}q}z#vy4O9~a~JxN_I@{O$?vacS;xIc{Gn zti6wSMrU1?^u}~X*Ns!yB)#pOBe+vp-D&R25+@Y)bKK~+q0ryGo(=(sFa&6-i=!z& zfs`FM%X!KhOTkQlk5aI$@Mlw2emjIC#^Q=ltl(VgGEHqEW5&~r#gPZJW+EbgIM3_}(n9=oPf zv`?0;T)XMnmzr-It)7@Z>CRbLDe4{HIkrjFW%tD>pg&`0yPwoq(kW?EVlcs$>gbkh zIJR6x-UJLZyrY}+RXr--P{jI<#oC5|!VV~-d>d!^%liK;AQZyZY}o8>R7PzCfmwVr zG-dB}^WZRYAdf*t0tKevo1t1e6<#(Xl$uh!sW$>t(vt;&WN*cm{>#|X|1Gw{5N%E2 z%B#=t%_x1|jiRSXM+K9ns)|-CGUp5mU=fdPQ*}8R8%M%v4wLRuAQKI zlxw=3jUPK3JHz_cRLM_xR`6@+3KQK^3dAK+URrSv z?CTt^;7_6UGk$noYlnNoLF%&iVrl@t%2TvWW@X0N2AyzYDHA8LO z-FGTq?`f3(^NNRF!-C6K#Iz_rpKdX4{CBj}4QHwM4zKG5EfRD_pzJ@Rr8Bxupe3(r z5G@B!VJ61z3pvCF{LnZ@!;Iw`dQ{{?{uCPFW~iIz$Fv_g(*0W1jP4y(GxFc9GCwot znf3VFg}?RBQ;}6&AyqQ<-4JsV&4tzl;zNr z;L54C5H=YPEJr_De!yOrj158@lnujm2^W_`d19cM+ ziAWqqV(t<9#U$OBVbBN{q>25%nef7qm0vE~uleMW=fcGz2?knpJ3 z_z|NM5>xbP8QGKXoHpzJhaa2sL}Bs5#miPaUAb;!b?vh+yySe<)3W3BuAT3^xA*=1 z2YZkH>G-KLAOGdt`TzGx-=)i+e|g3C^*7i4@!j{=|M|m@KmNpi(+;;CSLP|@QQ=`C zTylK%yB~hSHNHnOP9&$ErGX{6teHoGT}RHSuul$2fiZ$UzQ1x z2>B!Ur-oXE2Uh%v2udBl)eINW^dxNgzsM{4`ydScI&g=$`0V zoJYvLJ$b*r^RB6PPn$kt=B#@x_uhB^0}np*@FTMyee5^CeSA*-Qwho^#zu@8GyYeT zbEb@2r7oCT5xmuxQXIJ8S0Em5=5Mesum)TPS(%I8TCg~&tdw12NF9>wB?~Hux^&T8 zAwsGy{SLtWyO(8Ns6_gkh&NO78fjBG!P=CblDAV=CXo$ftwXsAk(5!&@$l4 z=u0nMC|s#XFES2US$L$gykd}Rx(x{=;(o^YLXH@$UP$jQW{&`e$ftDD_%s&F6iZKI zn?FB5)FA7i^afm6coVJ{EEae)$T}$efUCw<2KpA3GUgxzgVnhGn1v>|RI-F#YRR0b zlis$(ZYvysh4=&cQ`;-ZBI|%W>T$JTSpXOPWER_SmtfMufxKd!CtnIrlF_UP4kKu(k~u^eIBlLETb1&2X5S)OXkgknTKi@CXS51 zZRoJ!BStDljUGeqHOE7Le>=h-C-YAke%qu8S(CG4(Yk6AqhgFHxv4|sh7l7-CX64g z7&pe0k(RDj70jJiXf2vwYDE^4v@EkQ2KB zk-oA^?WEj_yCLbdqqdSy*%g(SG7HL<7L-d-y9yRv4&G4tY$a~*oL^S3Xc5AhOBWR^ zT}dL-tn=(kBMCkWuBH`~TNjeZ#kR5)kz``QLK`j#UAo|Mr70;3sO(E^^Vq$WCi~*W zrDfMrZMZiQ!BcGutYwkJv~sZxcXQM5s=`7Wz5EisG}iy5;&Rhc5~*FZpr8VX%WU6Q zCYBaji4j+1F0!pGK-ep3koYnZDPNHki8{U1_IahM?3${uU=gn3o>$E9PApqlv2^7! zNMq#0f|ZeElFhnkE&}QbaqlLh?DkjHrSohBC3Y#jsB~_@T-!oiT3%RIFu$}!O0*?~ z)-sK~(7IV|wa#5=om*DALJD$#HNAAclq@V=Y+bo{u9RpXa-}7k=av-|#?C8UIM-UX zOiBuHO=f9{LN1r$Lh$kmg?zKAxM2SL3bL%&O4$9a1xN#zd6t!`OUstp7f8vZwAR7A zSY}lZ1odGln7JlYr%BQVoV}tbn0roR!WkMBvWTjA(<&EGs!k)kckFkrc9&LinMS@%_gQ4W4hTSf>&g^ zmY9tylUbxz878T8qNH?VDoN4m^^qogROx1-BPO#-O%T(ZqSfN3`E*31(-0PnPsWe6J%&q*|NkGReG{kq%xaT zi4%iCjTr!ue7aVa2_KV+q|yL1F9}KMTJ0oc(wI(kk$OGNi_t7fL2znhnOc%)1Q}pV znpTyl#XYqw1ae6x>hyXMJb)&hB*9Yzp3vZ__@wEQMLMF#$bsgQm{P$5%2k6ZO{Gtz z_^5NLG2NguB+Ks5C7O-t*&^W1Bqo|5h9PO%M6+x{hRF=h8!00w@69PX!$f9NVeFwd z8YdEDkEpeJW2OiNlQxCY{NY4JMgVRNzgL9%X_gk;#yo3528w{LM(# zXA`r^FcF@aMuP^~V)95)5j6_fXaI|}rUZeqP%!rRII@XB%{(B4O*m{$YPt)z;_x{N>c?5*$D`$Hm0h<1ESU? zCo_iQUS)(yHw734J|}CzA2ltjRIn6P1k6%_FR%cWN}VlYgaHYSNYv@z8$qT_iN^HA z6j>-kLNHSzVJD8ZDeMdBui7Frn@Z4b;M zWKE<(&8BY^Bb+6VN=2iJjK(CH%$Oq5YPAy)A~7+Arlm5Y-qIpM&ds##N>Qajs3F=0 zv@5!FR4=qBW|D})O3w&ZWYjf1ywR2zQ;@a@$gW%d=2WXEEz0QXKQ6>{L(0bB*;xB8UZOuOwZ8jY2DFlWa-*eZK|4y3>rASD%B`L zvbdI8q%qP06$MiOK`6yQa#Y-8L2;oeY7MAqC^@46wInGWWv!9v%&6zIX3^OTLTk}R znIUtmZAB%9=&~9^wD8XcHk5(DA=M4rp_8;ra`8QM72n!S%8doNUL{LIQ>4}C})F_7B+Ba zXb>hj#Vlg=J5xn@3c?LWok^Q8AX+qg?3~qMw1Xo z5Opo>O4R8z4Iw2sr=r!)PM|W#5`)yERnS8YVPisq5`=V4L`fklRFngqR;J2;o(!!9 zZTM7%>`Vww>{ydgJw7%>IHVwuZIfR4`ShgbBt#PoPRqMFE>Y8!ag&9Mnep zK^-ki8k*L1mN6BXU_^Vv9FZtdY3|S(P-|&36`+f;BiQN&2!k(p0jUzQMT5{TG(o6# zs2N&4?IMD)L?BjZO)*V2$z9&I1T@S7l}+Yce|Op~aX;D@=Us zC|ta5%FxEr)=qXUA@TOyyNfq(YumZ!52yQnlq8w%T)1q5=gl7PRe$ujyhrChwQbjl z&t$r3zgx0p+u@Htk5^85sCaYT3$7iVZ@#nl&!R}#P|cL-_gh!2-q6%@?1D(1J}LLk zY4?<_d4BhqFG>8kNx!yk-g)w~QNOaTs&0S%(3vlzw?2F0Q$P55F7!MfdS1BkdGV%a z+YL`c=y@shyo|b-LR$)yU=r=mNm2%FJCX>>&Lr}uXBg;6g$*_WjyJ7%&?$|=fuH(P z_&;3(`JZIvy>iiEg-VVW^dv|G{U2rZ4 z|Mb**hd%$}{P`f<|I;^DYnOfzg3q7-;`7WuUA-Fg-?#7l{~XP{dNoR6{_l)4lP7%o z=^q$Dpzq0!<$o<4fQfn5>ED|}aMZAccg%cyRtOFt48eCe9QR?}tG5y!o!|dNy~jHI zJLuGmCP1GohyV0oc&y|734`G*$GS%b!C1{&Gu!X~UWkm}lKQ@XO}pQpz~Hr>eV$5E zsjSQ+Js6@lk)FIBB9aUtBEMfGB7Q$sW9Wxj2v&SV5s^{RF%r7y#O8BD2)~ct_jdcM z+iIVw{JQVY$Ab2iOBPt4_}!xq+&g`0ZcbJP2I&)0w27*Oabrg-MvfRZ^tO0;oGey4 zBqlm4(*M;bXOHyk+|k^yW#j6KrHhLS9-sZtJu~i_l9QcjN}~}qs)X@l$BY^|V)zXa zBP8Ki@gd*zeSGx&ogK{$bybxWWebb)=gfZ4GGl69PWHb}HxQkW?aziJC&;GY7x`xo zg@blnHXjxQsXa_A#2FazhD3$1oV)42+3EiGd7&tbAgINa_5ZEzqI30LD@{7#g4~2*aC# zahBU!EPbsO(q?(6#qwY67HjJU-}M9eGM1L z;U2m7AH_51!I>-EmEtH}Pt1e~Db}mpRptB^Y}Q4cXcBLZJJA%?Ku+MI{5BEQL-@LN zQ)}0i-u}+i)~?T-7u;Q6I6uM8p7Rp+zMNmU+bW&Ja|s%9AM;n}F_J5FWBRUIcHv^5 zHsU+q6xMa6{czV6?&^jsIGVH*+si{*oBfym_J!MfXZHm+=j;B&&3(1!lDq$syUWLY ziwnjk`(&LNPM;g3&(b-7ouv~DGOOrY82($G&w0&#LF|1CDBo$R`JKn|cx&$z-x&Dx z_@a?7&}NCC`G*C_VduY1lTv;RX{GS7795v}rv41D%x?iVkEH!`5AmdZuUyn>d8`#g zU~BuDyX%rO+{0ZvjBk{O!v%v*i>I~gnlsOH7;iay4`c5%k8>)s{D!^9dcgT>P7MWG zcR%ZKrg)lS;Gp+_ZAuUF7UNWSoIkoLwj7U*IHjI8sWXdVH+%Ax|J8o%cOINw{~EtK zz%Cox)j|pFZ)@YZZ<@v3Q6Asd+*jS8&bLSEp$tTZxPQ>scZau~lY8o7aQvVWiF6P1 z06Dl5H}0CdbvN10eb4_xC&Pu<9`0-Y`%&vW&PP1m8V~dgMc&cfKjLb9y+^Sp#Z&PD zC2;o+O1$Oiw!djSdvZKIv30k1PxZ)?ww=rJc%!=WJRlnPU1WJEE!RL7_wAl64{~Mp zbfuNA9)bUPpL(Ay#-+B$yYiT$l7_Hj?_98dd}|8DP?;gOH- zc*LWN!|&!k;885HcxoQEzV@0dxwXA9mB!uwuN&BN6DF?ffyfAQb#UIHv_ z{`@9CqQCx#r-q!^B0ACWpy&13o|>=|Tf`?i9`d~YsHZ0U#1_ekj)y(3Kjx{4II$)2 z#OA0I`Dk=IAKv%Sy^omlud-qDELx(aSyv8<2$y6zYVx_~_ulG@Vc;r-> zUM33rWgViQJd^}d2_+OC#IKYJzc$K{g-1!{ z!xUq&2Q@)&NJ}^0fuCaxWg}#fO7W|Yd1(6S=8Zs6$PbpmtRv-eVv-ZJ9Ij(yg9J+j zN$p6{I$BP(nK538wA#Ef^ zfC|!bm$m3KEcUh-c~neTuDfUi`Y2{c388%g z{IhR0V@VK~FFs6$U^fsmb#$J3^bF>jmq&4glYXMCilVGEF{6$mx0?7Ua+6^wsGTT2sdUsRiWLP+!a~I<6ro(2o-U%Ec$8{QQi@4Nz^jk}7%~Ef5l|{kNud!U zAh^<^7*VM113Az_CPIQdVt8?J5dR3p=&>w~35IeRfk7b(klWYXkhmKc3W zBZVk%7lI9razkz;|6y(fVPXlW6=L=1%J|WBLUMv!L){dvw$6(LE;E<>Gj`cuK_SjgH|P9nWuY4By~* zo^uT694D(CL#rLXje8x0u2dh7eW_5H`{`w!LUMjxto00wZhzW+G$I11OJ^$q|h>-$M~ z?v&HahA4;X`+Hx^jXZ?^U{LCIAmG;Ha&XT&dR+Y>%RVwietezd+`6;t9B1f@0cY0j z4O)N3{mkI-0bnn_zk~;gfjK>{W8HU`-kvQ!3LxM%x&Ts^K_<&=m6^?MK0AE|e+!phA&Tfg^g{keL_`Fh9M`rJ(C zmaSVHFi!g3x+PaKS(JPGlyHGa;eDQFiPC(N8SK7~9BRo;*x!;H_aXjs_8?E z7NW8vHRYDhmSRq#zKOwca4 zQhA%Mz+W%;4%ljh%_ly1hesXFrmKXgb4FBOGf4}&`Ug)1h z`2EpC@QuPZra$6~y;7M!7Qy}f((rx5{QgnwfB1+|!=SbT<&{yxMvoaaY}{Dke>}b_ z{L^oOa#X*3*gn5s?e8Cxhi@XVX#D--X6&on=im3k^#p%|fAy~T_~YZo?ehOHJp1;F z2Q!Axsd%`nYfk*%eg5l}{xxg%{V-?Mxp5Evu;i&Fk3D9ebJ{*UWAe`UIhp7DKU|l? z|Er(oGz?uee6PQIc;>^IV@@s^KKtRFvv+>f{lpKyt^ENB^bd`HFh2f=B}>O--yZ+q Y@FjD8l|6j+?D!@7E`#ktparF{Q=2Jlh$cfV2QoW1tiYp=ET-fOSD z)*k=shN5#p`nI+$L67_^D(Ft}WWuhVcf>0?=h)J78}f|5Is4U|UR^p${NSlr`(~w$ zcPct=cD!?dG*JoToF4G!#YvIx-a;xK{5G9oSLK=-1xsb#_ z&1YQ56I{%r+}n?$!JY(zx%Z=rj?duki{s+6ga$oVlFr>6Usl=ZT}yJ76SAB*3|E$r zfy>F*C3a%+F4CZjh&P?&EFmPFz5I|%9Gn`Cx*rOOyW9b&&9BBs3&O;$vd&`luZ=eC)k3#$aCfh&zq=BOnzQG2h(h zk=An*?@BM;$t6Ew{@Wwmj0uWPsMia1`U+AkH6I(UUW7h$kcfbB@Rv)JxnwON8wrt# z(oDW1ih=w{lo!coLtEwmJi$ffa0yw^ z-h3qzy;z*ORa2PaHWGhOL!8`Q+ne^SvpA&!~XzRfBowV;JslxX03zAbxXMhW93WKIGw!zRFEo=)H^h2XGr# zmSv#8U7F~QIOyxI8aO3QKI{*&m>+zMYmVdYnWmM%A|nG5XNd1s|II$mAL+Y8?Zc(M zfKIqE+IQ^>(9Ib#^suqc(wa!P?`DJYk+p=oIAc?WMxlp2P4@aZ%)e#vTxyP-!LNXL zxfx7g1Givlqw!4HirkFKOGFJV%P1kINJqmoDFh-x(OldUjmEReExeN{Mkf9c*0={+ zHqDpk*Hx;)Or7SpAH|3iIV33Os?u7E&5{zzJKd27efK*q`4)Q432UTEhoot#M;hM1 z(&AMaTxqtvn9pD}Oz<9QRSwDIy-cjZe4^JttvWs_)*B(l&EV`$uHjZ`bB3{V7xC%U zF3`dTiAWNu!pQ$>E_kev5^o_frBOC%yt%}x!_0v=`zdjRoT9|2N0YUX)l{>b0IPI4 zsaXQ7(j~-#woaY52`pV%Rg& z!hR%j6DFrP`z!q==5c z54LZU>asw5t5mnxulF2x?+BE)qwM%nUJT11XTdUfec)H?=DnLi=epoB{yE{U!td-2caYwXoAlkueC*P9J3u{qL znvYki=h#Zilytd^z18H0_lSS6V-RoizQ^ii8+nf~!(sEL5(tQLDrs8Wd^}S|C0 z>jZ-M!?O?E1dG!JX3RO6n;CB&5zlQFZ<}?u9U{fV=RwK7P&I7ixeaVJNNu@qOFE~A z)0II9Z(F!eXT$cKB9RqdM|_-jO?;f?v-of0PsID>iNAb#IeixPsJunTXmG8aFo zz2C%ZufYKKx%xUV@XC;Zz!g6U!!^N`EV<89URJvD&RDszC4_JE=>VC zal&jylw0?|@XcO-ccoir1M|8kEgEa`USTbj8w8PR9SG~Fyst$kyg{)+G3o)zY|EWQ z+2T?{gkmbv=LXx?Qhu*nq`%Ofdmw zZHHMIj4ip>W4P!rQ_fu!^u6}`u^XWe?_Jc_;0RIn0%$%lB|40^#R7K1#*pr31Q{Q1 zqBD@hCN_*hlXp=*8I^oWejFG~t!OmggVP?R{3~*jF9-%c z(f5$&Cv)0zr3de{!(88}GJvmvcBt%nXh^#vy9U(%_XOQi)G>ua|hM`z?u|hk5t1oG4tt=m-}v zI>IH4j_@0mQ-$BDY!&{X@;u=(m0uRFP(=@l%Z0gwyLS~IBWHs=qSS=>38ml*g#yZ!2NqQ*%b#){n}|d``^mrM@tKFL|k|uU}Tbw0bEht2$3Gxc^wg z?0F0D-q!FY`Uf-tuW1>>5`A-q>VJPqJUwSXR80J)PuQ{v@`tUemm5cN;Ofc-zg_~d|a_d+<)HTNldr(&v?^2vUEeX^WfycGOx<_0ZykEg2P zz$5g)c@}io+1bHz5m-g!!Inz9P_GHQl!ckB_JOD)Fe8 z5k1b=-9OD|k3#9q>2MVc=6h%O!tgjc-8UGIUuO75;=#}G-G;}$8NRW2d^5xR(lmFL zK03-5bd2x;T-_w|9!tlWdLA6Yb?94!XeLOK`8CO2T!Rg9j0*Lc^g*go1%^L8~ z0!l*}TKx9+m>9#cQVug`56uJhv8Zj) zNU$z|6Z5_K9`R_B>EZlrICd~*@U2*tvIVC}tyhdVTT{$SM0G4S4j=_3fm01CEkT|#eAxEhw6CAdzb*w2P3vt;$>#|_cFuZa67a7jcBup-^bVU zKEAZvB=3cBvB?cEE}3%U=Qd9`w_043!r38c7d5D%FoVjC!eV$^LKcM+wum`lHmZz= zfd!=+ekcC{@8uKuBtDr>36+Mq%H*Q+^w@Kbu3+qVY<|nE3UkvlKs_F-%sL@gcn1^+ z*;JPJZ)F$%9pK+f;py4b(bFVQmC+y~EJmHVnLhL*;3kvIE;#QgH$wb%BaD}MPj?^ z;_uFOuV`S`J&R3?HEKV#e-t>i*D@AIMjkW{h!rjK`Ub5Rm(IJpd;8vn(=*$?#P{b7 zwqFBc(}wM8*wbQ_t*4mR&)k0qw->@S#6mje{zEg>c6l#Jz`P?fsJxTRqVfmiB`WVCiR`Fsg(LT^N#1Eq6rMwkRVP?b zher}l3Oid8h35fn(FwBw#UmM;%1@InB0P5?JW!)*{=4B*ZU;HFX>w4}D8p6RqT zox0PhFGLMdbV533yrr;eBVMrf&={WV47Qt&vzxz|b+wEcZBNFOP5~lw2CC92CeZ^X zV6erHHf;4fb=vypu4|_?13ff>oL|hs|LYkD)H!vG7|$FPMviB`N@le!wuSj0DcpDQ zBS7G<8X_!crBX0cV+hW|G3Y~Fn#KjEQ*NBNG0oJiM;Z>8Y@S+1{z1e~(kAzuL@fz- z$qkzCy%*}bwRMtsYx=MWrP-J@Y-*yP^0Ev>kPsq4*b9CbLMAM*s2zadcq6X(iIlbJ z6Ykv?8XJw5u-USbGJ~(<-W7||2inoXJDYns$Kp+ofItsKGGXG|iftCIm)$qe5!})h zF`*vps2PrpXAUAiZ}FLUeucijj>Y-0r7Qm>mw^Z&0NL<1_fMjZzqRuxXZu1N*h1i> z>|Vl{JrY5ivcb4k5$TS!!&}lS&F5a|K>II!Aa=L_y~M)7g+HreUAO4?&$VS9$sY_X z^Dm%5Ffs`HK?(8QtPcE_vZ9^itiRxx8{T_qAbxSX?}C2_^J&Hfd>CkDQIiqO+E<+iQ^gmM0WUo$qsOAOGLS*X`Hg&>ij?;El>kLTx@kzA^`Im7_>Q!>Y>4`-r5giOomesb)+*Qco<9db;v{QuAm&f28sOQZq4M_>EM? zk{WZqFoskFi*V@xolH?gFTQ&-ramosq0ukc>kP})4YxuG^(J=^Z&FCu&e(s2Ac z%5QwOGMZn))xWHy@~O&wyj9W_J@6|nI!U=bNke}!4sy3rwU_4LICbBAMEzYGY6q$3 zoh&Y}EOpg~-1gMK7#YmXVzOtXdH_w0UFttH_Qrq2Kkk$p_RWfh&;|HiT`v=;JjIYX=0 zvo^P=7e=0<#!x1UzxT;gRP8acmBxg-f29!a`(*b?JoArno-WW-=|{8`N{fIROOMjl zlW+x7tsI|OrAt7ZpLdqTX~|Y308`7&sj0pZ z$g~Z_wsAA^(<I-bP>me4@9t|_QkVi$Qn{IiCk;hG;@b8FpJL+e^<=o zqd0jq)OKO>_|ucrb7|FwEMS5oFRR2PN2NB&KmC=8d$Nb^P#X3_`WnAo^CWwD*R82KO$izv3s-|0i%wJX zS*vE#-kIkc>5oBZYossK{}4hU6A(<9Xi+e$p5i;-z*^Qg|ilCn5KeSovM!>_vvY>>LZpzJ9)-ti(*1p zwQXMIX(|oVkbImY)MxSNBgX%*PK;YN>*jT9fC`R{ph^q5ZVR*U4;{#r3SXV~rSwa49ly1#afb_ViOXAlsJvytnw)G%kH#vsnf znRU}@NzN4VC7DO`6n=^|OsvfrWG_JKSSXU*g%WRb3lg7MStM24qQ?n)BzKV%8EHye zE%Ab)OUsw|B6oqruYqgvh_ltj zg&L`{2AmILV$|NjQ zqAgVA5wL*7cc-uc7X1B{!+*&eT(~rHttQTEYSTmL`oC;&BW`Sq9mw#BigroL6@IC* zfnQd&OJWJz&H*q83AjK|^A0w0Or&>|zqhlCeY~&mEZi7vZj@IqjULxb5=a9~#2IAS zUm$QJUL;DwUy9Vph#jMOKI6bHDJD|(utb8#JPBR%Un=F-OJL4OQ%e5~+VLk4hQ8hB zJF}7L#OjoY=fEUf`oVmvf}}Dv31)O`){TdTRHQ6aEL{jz#_?;PT;U1Kk{rIt4^r5VhBpI;m5htCey8q~Ax*BP{J3O849 zFG338USELg4N?dsh@ieWPq%B%L;Ms3rXwiZtRnCX{AXwho=~8MI}B)za}N+y+~8T# zXsqGF;^(OEvAazN7ieMCNL+Xs>^VmwSQ62vLungIYo(6T2+z6bE2bPFALlNwm~Yh) zgN6xhuoXndH6Q!8deNdZiod_sCn!biwbC5Zx(U$8FhEnOCz@yqPZv+9bO9d-Y!|5`W}x4GI^7 zb4LUvhc>oBatY zZ^dd!5hhU3ibXOIbD2P_B&3*BhpgD8|d zEdJtck5RBA;UUYDEN;Le18VO;oWO|ue*{&+gqWhDrY|DMxqY$_7;m)-#Vlud)I(`Hr1Z<=y4pyjKcLUE^WD7j^TQk8K~ak z7pw0Jy{Q0+-ri#O{OM0>+1p!?y&a6~?EqwNjR=Hy#dW>D>g}8_+nk?`Z|Y9>q8!5ilSCGkl9Ei*9Pkj<@6 zsZXxAssF~NYs27nfSM99!;(<(D~sZwq7#69Cjih=!JXh!0X#9jfV=xfGH8w%NK3cC zO_WYzO@U-`m{?LUAP#NNWqne8BICvaXM#!PGddzQ!S*rDVNIFS#tm4RPvOo*tbJRZUu8@tV{< z3&xg_GejJJa8aBu!D-JMg1R)&yrObr_cE$ldQ7% zzWg~0?z2K1zXFA~;fZJo2sR8|VB?dER}|aKTSRZsnC{o(i{Wbq_BStAS(K7x=)sJQ zPp-CMB#UiWVS~g+*TmQpvRGUQNsd^y84vedG+7g15^I5<;`lh z>Quo&2V`M9%?);~pbah>xg8YOO63K(YAP?pRZ}Uraw$Ezl==sPk#AN|^%n5*%`$34 zCb@uqQ-BB)cq+}M;=tn35sadR%@lEN@vWAu0*m|#kAyUz9-1~ReOUXSNlvrA!KcaT z*0=a{9JA8m+e*t2ohz-v`SRbaHk?m$=$ks~{)u5NrL67-iNzDegY4U>KXK|mX*#7- z-=ygq>C_UM?xa&oY5LoA>Ux?k(W!6IbQhhvfu?VwQwdF%X>58KO|PQqn`!#HG`*ar zduX~s)2nHE1xjzDL3m)8nA9TXOG_#BbL2>%Utv29LleA_@d>b+?Kte!?Up zl!`{NpMEhcK?MC&}05^2#H%7xX3~5C$^|sh6$SUp-2i*M!VZS(t ziMPOp-Dsk*n_|E8{zCXdY@)o(wY(-8);-c=Kmn5OvhO)Zh_W?SOVEqYth+79CN5hy z9L5}%v})u;p;W?^o%NEOEW9OIBFppgYQ9(*S95S>oHL~T^iTQB37N?@_9xp)qcEaP zEXZVI;qy$(#g)BQm94VytNE|^+j4(g$(D97yzcJI&o1vEW_7oRR)~sT-Igrp1UwvbU zy`9o^gt+e~%7<_(9queHro*4b-E{7w)fTQh&)v&&>vH{3^5RL8CgEbCHC%XKLWm|% zj1NPJvCa+*5uS6E?@OlaE33frNXBvySXOp1j`iRe`YxYnXLRQ+T=H7}+VxV8zPH|S z??aDHf@|&@=;`kqTy675nviU;X|X&84)KI29PGGuNC`qO!Jc#2Y6ii^t9_j#^J)kC zd!p3^tyKvSwRj$K7hruJZ+5S`0nz?nFp>Y7mRs11a^L2H!&q5DrhKa;yIPpqjgb(g zU2!H^LTY_Gs;s)eFmQ)g`$EAcy93kS@1LpN+fL2?7v%2!pX3rdnR5nnyI0E+hFErC zd|BV&9euO>Ya@@e3%>%Vh)**7x7Q#=cWVuD2L|L|P1$Qnoqe&V2Y$oAlEN#zQS_TA z>d`l?$TJ??lqIiVL7!`y-_4qjXvgXqTN6buN71^)p5BZ=(+V{z7Il|2P%s1K85`TF z2)9u8{R9CorQtGG-eObDQ~6Lp(qh51U8;FHA4=%Z9y>y@DJMpk#31zq4oc+}aA3cB zotvD8>yFVe;hVg9pZ22uVU@io-1E9xl`XNlk379h@*!)8&*_Qh51A*w9xEThRf|J# z)3O6i@9u1R`wdMU5%q`av;9VME?Qy5@RCPg?`pCivW&ci8h>lOh2rNr_>qo*srdVe z=FtDijH8#BujWVb4fs(B?f`2y zmiEbqV6j%?CW$4oqOsBYkGwceD4q+ciIz-uwV%cMXRBa4uPhHh*HJo3*?jEwl7n-rmkKoeZC*7{+_ivzKu zQCgM7$z2sH560zp_ERGZrcnD*2yb5s7H#^A;cu<$+IGjxmG6E>H?q%`^0&SX5#_f> ziT=0iwtOq~kFck#{pY6Y_rGiF(tr5f_s2b(kyTo@?dUI;dJp^CV{;ZRb8PW_+uCKs z6ECdTQ1jXGpe_%aUtA@+>%MCkNY26?R_?hZDI#qa(rq0HR0*{mx!KV4>iK`|$7&ON=#ALq=0LvvKh zQ-5;?SDzNnZf?N$`(@7X>eHo1bq%#f^?Yg^BHl@-_*1Fj(Y28yMhs7C*Uix*JGyL>LDD-*uUW>!8>hM;-`tJezVlrpHUG3K{jI#mtKl&PV`8x}Z4D1>HpwlZ*TzF>0f+rID^Kr7MZmsE=}4xEJiof#+RFrvC@O4b|?M z?kHodUMW{L@&Azw-f)-yKfK=y_D=8W>S8*CNc?&Bb)li;2cydoiOA-1^y0nQ1?tdG z)PS>6d5uoyFUsemyO-Cz=HmY?U+lBeMW(yFLtXyC*x>tm|G#oRZ;Y!;*N6}`?{yQqNDsh z-3cyJn%N~h?Sk|6j4MAPxWXOJs%HeMpF;H%moSZ0&qTGp;^d2pssj}z$l`26^Q!4C zyP!K*6m-!2l&flnOVA%IG8}Y2?W%glB?KQV3OVSW=Bk?M5<(9ag&iymKWJ%d(|K;% z@${7GqsAM9f{dQ&o*ACV9nW}P@vKBr<_phx&$#M^)y37DtLv+|_olu#|Gl&CWo_BE z<&Q11w=UTF@z&67{kKioCT>%5;9F58!GZ`!WYo!=h1W6PecQfS|9-C!R& WKeexq9oMF7YrCS0+#x1^od19Fc@<3n diff --git a/variables.asm b/variables.asm index 379ae63..fe9c7d2 100644 --- a/variables.asm +++ b/variables.asm @@ -14,34 +14,35 @@ OneTimeZeroVariablesCount = variablesToInitialize-OneTimeZeroVariables ; MAX 12 .error "OneTimeZeroVariablesCount too large, ",OneTimeZeroVariablesCount .endif -noMusic .by 0 ; 0 - play music, $ff - do not play music -noSfx .by 0 ; 0 - play SFX, $ff - do not play SFX +noMusic .ds 1 ;.by 0 ; 0 - play music, $ff - do not play music +noSfx .ds 1 ;.by 0 ; 0 - play SFX, $ff - do not play SFX ;---------------------------------------------------- ; Color table for Game Over Screen (created in a gameover routine) - .by $00 ; labels line color -GameOverColoursTable .BYTE $80,$40,$c4,$20,$c0,$e4 + .ds 1 ;.by $00 ; labels line color +GameOverColoursTable .ds MaxPlayers; .BYTE $80,$40,$c4,$20,$c0,$e4 ;---------------------------------------------------- TanksNames ; DO NOT ZERO ON GAME RESTART - ticket #24 - :6 dta d" " + ;:6 dta d" " + .ds 6*8 ;---------------------------------------------------- skilltable ; computer controlled players' skills (1-8), 0 - human (no cleaning, ticket #30) .DS [MaxPlayers] ;---------------------------------------------------- variablesToInitialize ;Options DO NOT ZERO ON RESTART GAME - ticket #27 -OptionsTable .by 0,1,2,2,0,1,3,2,0 -RoundsInTheGame .by 10 ;how many rounds in the current game -seppukuVal .by 75 -mountainDeltaH .by 3 -mountainDeltaL .by $ff +OptionsTable .ds maxOptions ;.by 0,1,2,2,0,1,3,2,0 +RoundsInTheGame .ds 1 ;.by 10 ;how many rounds in the current game +seppukuVal .ds 1 ;.by 75 +mountainDeltaH .ds 1 ;.by 3 +mountainDeltaL .ds 1 ;.by $ff ;---------------------------------------------------- LineHeader1 - dta d"# ROUND: " + .ds 9 ;dta d"# ROUND: " RoundNrDisplay - dta d" #", $ff + .ds 7 ;dta d" #", $ff ; 4x4 text buffer ResultLineBuffer - dta d" ", $ff + .ds 19 ;dta d" ", $ff ;===================================================== variablesStart ; zeroing starts here