From 9d93925db43574f95711a7afbd0d82397412548f Mon Sep 17 00:00:00 2001 From: pkali Date: Fri, 6 Dec 2024 00:47:18 -0500 Subject: [PATCH] fire+start fixes --- averybreakout.asm | 109 ++++++++++++++-------------------------------- averybreakout.xex | Bin 10411 -> 10440 bytes fileio.asm | 2 +- lib/ATARISYS.ASM | 11 +++++ 4 files changed, 45 insertions(+), 77 deletions(-) diff --git a/averybreakout.asm b/averybreakout.asm index 73f9e77..1a043c2 100644 --- a/averybreakout.asm +++ b/averybreakout.asm @@ -146,29 +146,8 @@ StartText ;------------JOY------------- ;happy happy joy joy ;check for joystick now -/* - inc MyClok - lda MyClok - and #$07 - bne jNotRight -*/ + ldy PORTA -/* - tya - and #$01 ;up - bne jNotUp - ldx joystickConversion ;up - lda #1 - sta keyboardGrid,x -jNotUp - tya - and #$02 ;down - bne jNotDown - ldx joystickConversion+1 ;up - lda #1 - sta keyboardGrid,x -jNotDown -*/ tya and #$04 ;left bne jNotLeft @@ -254,7 +233,7 @@ SkipRMTVBL ;sfx lda sfx_effect bmi lab2 - asl @ ; * 2 + asl ; * 2 tay ;Y = 2,4,..,16 instrument number * 2 (0,2,4,..,126) ldx #3 ;X = 3 channel (0..3 or 0..7 for stereo module) lda #12 ;A = 12 note (0..60) @@ -264,22 +243,6 @@ SkipRMTVBL sta sfx_effect ;reinit value ; lab2 - /* - lda ticksPerSecond - cmp #60 - bne PALMusic - ; it is NTSC HERE -- slow down the sound - lda ticks - and #%00000111 - beq skipSoundFrame -PALMusic - lda slowMusic - beq playNow - lda ticks - and #%00000011 - beq skipSoundFrame -playNow - */ jsr RASTERMUSICTRACKER+3 skipSoundFrame @@ -318,27 +281,19 @@ skipSoundFrame ;stx DLI_X mva #$80 PRIOR - ;ldx dliCount - - ;txa - ;asl - ;asl - ;lda brickcolorTab,x lda VCOUNT asl asl sta WSYNC sta COLBAK - ;inx - ;stx dliCount - ;ldx DLI_X lda DLI_A rti .endp ;-------------------------------------------------- main ;-------------------------------------------------- + jsr wait_for_depress jsr MakeDarkScreen jsr initialize RMTsong song_main_menu @@ -347,7 +302,7 @@ main mva #$0 AutoPlay jsr ScoreClear - mva #"9" Lives + mva #"1" Lives jsr clearscreen mva #$0 LevelType jsr LoadLevelData.level000 ; set visible number to 000 @@ -383,10 +338,10 @@ gameOver and #%00001110 sta COLPF0 lda CONSOL - and #%00000010 ; SELECT + and #@consol(start) ; START beq main lda TRIG0 ; fire - beq main + jeq main jmp @- ;-------------------------------------------------- @@ -400,10 +355,9 @@ gameOver jsr BuildLevelFromBuffer mwa #dl_start dlptrs lda #$0 ;+GTIACTLBITS -; sta PRIOR sta GPRIOR sta COLBAKS - lda #%00110010 ; normal screen width, DL on, P/M off + lda #@dmactl(standard|dma) ; normal screen width, DL on, P/M off sta dmactls pause 1 StartLoop @@ -461,14 +415,14 @@ level000 ;-------------------------------------------------- jsr MakeDarkScreen ldx #2 -@ lda LevelNumber,x - sec - sbc #$20 - sta LevelText+16,x - dex +@ lda LevelNumber,x + sec + sbc #$20 + sta LevelText+16,x + dex bpl @- mwa #dl_level dlptrs - lda #%00110010 ; normal screen width, DL on, P/M off + lda #@dmactl(standard|dma) ; normal screen width, DL on, P/M off sta dmactls pause 80 rts @@ -478,9 +432,9 @@ level000 ;-------------------------------------------------- jsr MakeDarkScreen ldx #5 -@ lda score,x - sta OverText+33,x - dex +@ lda score,x + sta OverText+33,x + dex bpl @- mwa #dl_over dlptrs lda #%00110010 ; normal screen width, DL on, P/M off @@ -495,10 +449,9 @@ level000 jsr MakeDarkScreen mwa #dl dlptrs lda #$0 ;+GTIACTLBITS -; sta PRIOR sta GPRIOR sta COLBAKS - lda #%00110010 ; normal screen width, DL on, P/M off + lda #@dmactl(standard|dma) ; normal screen width, DL on, P/M off sta dmactls pause 1 rts @@ -624,7 +577,7 @@ noTop bit AutoPlay bmi GoAuto lda CONSOL - and #%00000100 ; OPTION + and #@consol(option) ; OPTION bne bounceNormally GoAuto jmp bottomBounce ; turns off the ball kill @@ -844,7 +797,7 @@ NoScoreUp ora BricksInLevel+1 bne NoLevelEnd ; all bricks gone - level ended! - jmp GoNextLevel + jmp GoNextLevel NoLevelEnd ;spawn the new bally ; if there is still an empty slot for a new ball somewhere... @@ -904,14 +857,6 @@ dXlower sta dyTableL,x - - ; sound - ;lda random - ;and #%00001000 - ;lda #%00000000 - ;sta consol - - noCollision noMoreSlots @@ -954,7 +899,6 @@ flightLoopEnd endOfBallzLoop - ;pause dec currBall jpl flight @@ -965,8 +909,10 @@ endOfBallzLoop bpl NoAuto pause 1 ;additional pause if auto play mode (slower) lda CONSOL - and #%00000001 ; START + and #@consol(start) ; START beq LevelOver ; Start pressed in Auto Play - exit + lda TRIG0 + beq LevelOver NoAuto lda eXistenZstackPtr @@ -975,6 +921,7 @@ NoAuto LevelOver ; level over mva #$ff EndLevelFlag + jsr wait_for_depress rts @@ -1682,6 +1629,16 @@ noingame rts .endp ;-------------------------------------------------- +.proc wait_for_depress ; ion +;-------------------------------------------------- + lda CONSOL + and:cmp #%00000111 + bne wait_for_depress + lda TRIG0 + beq wait_for_depress + rts +.endp +;-------------------------------------------------- Menu_data .byte '200',EOL ; number of bricks in ATASCII .byte '1',EOL ; brick size in pixels diff --git a/averybreakout.xex b/averybreakout.xex index 67c93af1c519b3f4ce008a4b3ace315de59450cd..6b805833500721021bdbd762d9d52e87a9c2dc27 100644 GIT binary patch delta 2002 zcmc&!Z%A8L6wiM(wVGMA=^ypgDpRN>wzQ^N^=YQI_HC`Oj@}vf!e|-7+OaR|Ky9Mt zYK*>`NTD6PZT-;E=TIJF9TXBC*R8HEj8^^bS(EifcG;l#hLIw%%}7mRr;+N!14izh`w1J(5?hV5 zj@&PJf6Z6CBvj|ydmX~pq-)&{Z<~wR*}%A1s$+J!7;`;nREOgX+e}{*a-GbTW~vjS zh`H0kJZNFU^)yTK8)q3^1Jl*8ErcBTT7VDg!N%0E-0Yr(TxT-Zsn}8$=14v0v_QLY zpqZJgPg=jP&J&8&WSLs6PYow+YOQMI2KI1|_h`5;a2%lMh72y?(Tjq^Kz9qZ26)6r z2H}>0mXn&o%||oH7J%jU*L&hs{>kg5JpupZG}F=INk&nsz+quNY++8fzz4L4kFy@C zhu{f=dE56f4(@uWfGipOCY^Ee_;@R(d0pNUM*gfQ;BEMGu4DqnaP$0S^>pPq>}&US~R zcFA{a6q6r{8ucBdp!oIN(jNFU1bph|?vb|Q4)3dLQ+{c%TCZ-HiQW8f|Y#he=Vx8n{Yccg(h z3hkzfxUE7H$U(csn+KdvrC`zB|RWzO6QS)EK?&ZzN_itNmxeCO`ThzTJb8bo!5vq6Tu_QW%9HA0awYM zFJ%L^XVCusB|oGvTQyNV_Qx&POWE@`3}E`af=zB^1=!13VJn;5!V2YVl3|4{Y_g0M z7&ckT3T5o+QnGGii@t^&-niX6-%LA%lRWJaPVtl%Fi+nTCisNT4zKF15);9!J@R)7P6e|XoT-bv_!P&!C4BpA{QWq~3>388>cK4_$ecdOJzp`>RnD3-yd z{`S{tKn$D8y!}l}KFOzas!x}Oq#>n1eMGMb5k!pwK`<8pfL1|Fx&uP4X2A=91KsTQ zEDxaM08;AJ_0%B@pyhs)?AO$6Q2WtxA4*T1cE`c=JP`xhfT49bO84Pd+^ahmjxI%2 z!%|F&DM&R*QKe6P%sg>2*PM>E%#Tio2^7yafz% zx-#Mh5Zm$DxNahXCJ352vvdYv&MIqDPn6G6ZzRB)}pJ{#b>uf{GeUq^d{Z7iuD-E}All|p&-rN80+V@|<&vtA*YW@@X(!+)T delta 1966 zcmc&!T}%{L6y84;Tv0{@Tu{PjB|;;1B~{i%U>2$+Flp6?Cf8ksXBNaZli<1AMt=pGL49eD*9_r z!tq1#dLc(k6lld3y)!{+dK|E&ve=8MlT)m!V8SbFEBhY13=uOG$E-G z%}`I-W)GAOibmxAm6rCqXQ)LYu7Da~@k8R)>`fNBMEpK$Pp;7#!~FK^Y7)z`w+Cmd z#(I>ye$C4Am5SSsLkjQ5ZA!$C+m#7F?odX2xJ#M#;fONt!`%wy$5AD~Ia|zXss`_r z0^GQAl*9c>6Nd+sW)2T3XE-cg>6siHpX|rD?yAy`a7<}Giic!eY#yJCRSf$EVoo`9 zq6>@nvMbD9(V4R&-P{1pfP{Db?0vC5=iSYz8CtbJ;&IpdMCo7yMA{6zi(vZ7x zH=I!%1t&R56|Ok0HoO{mJJO#__Afp`9N9kVau_tS=~nttWug^n*4Y4>ZAEZh7XXQE zu9U;7Svz>8Pp^JK4q}FW$RWw?m)j)XFSkn(zuX~B_<@*IDp``IeOd}QP5VG0jrib7 z88&I&H`a5dM{XPFmpcXq<&xK=kh>s2jzFy34gPWzLci&8S=l2Z?c8E6FnAj@DmLqD zzmr>qq|T{6ftIfy&y&qdw&gx$nkqL>Kv6#o72To@XcrrC%Yhez!< zDCW{F3z)vlVG`Ml0B05>WHX74jF817G8thbli0urnM{IWgbmDRl(;p|3-A3fZ&&bU z6?s!Q%8>@4i6hlQGe;VQGhE!{gsNJKBp(MnZ!t;7I45u&6fGRk9TcB%^AGLX&v8=} z1_phFu0l_tqcA!c9E=Ty20zRE!y@g0U}~6&N)|Y@-~YJ@L~3(^`LyWToE2>564I?9vU@`48-PQnq_WC9#WBJlVfV57W|D~bkkFA*E;$~x61|sKONDZC3owp zm6XiubghMC!;tJE``k;);99eMeGbSir9fFn&Fnc**iw7w9HQ*YuMCIj)0K0fouElc-sF&aNc)P;teI<<+to7d z8bIG3(o&#~+p&I!97|#XAbqonPj-M^^ooV~h1XI3Bb&7m{UTOvE3`~ai63n%3r_vN PU+sSdfBpCy$5Z|SFoTWU diff --git a/fileio.asm b/fileio.asm index 31c0bcc..406cea1 100644 --- a/fileio.asm +++ b/fileio.asm @@ -12,7 +12,7 @@ sta ICBAL,x lda #>fname sta ICBAH,x - lda #04 ;kod dostępu: $04 odczyt, $08 zapis, $09 dopisywanie, $0c odczyt/zapis + lda #04 ;kod dostępu: $04 odczyt, $08 zapis, $09 dopisywanie, $0c odczyt/zapis sta ICAX1,x lda #$00 ;dodatkowy parametr, $00 jest zawsze dobre sta ICAX2,x diff --git a/lib/ATARISYS.ASM b/lib/ATARISYS.ASM index 3a609a2..b0e3986 100644 --- a/lib/ATARISYS.ASM +++ b/lib/ATARISYS.ASM @@ -653,6 +653,13 @@ scr32 = @dmactl(narrow|dma|players|missiles|lineX1) mode10 = %10000000 mode11 = %11000000 .ende + +.enum @consol + start = %001 + select = %010 + option = %100 +.ende + ; --------------------------------------------------------------------------- ; KBCODEs ; --------------------------------------------------------------------------- @@ -722,4 +729,8 @@ scr32 = @dmactl(narrow|dma|players|missiles|lineX1) _space = 33 .ende +; --------------------------------------------------------------------------- +; MISCELLANEOUS +; --------------------------------------------------------------------------- + EOL = $9b