diff --git a/grafproc.asm b/grafproc.asm index ed75e20..6d6e947 100755 --- a/grafproc.asm +++ b/grafproc.asm @@ -38,14 +38,10 @@ draw .proc ;;fuxxing good draw :) bcs DrawOutOfTheScreen cpw xbyte #screenwidth bcs DrawOutOfTheScreen - ;cpw ydraw #screenheight - ;bcs DrawOutOfTheScreen - ;cpw ybyte #screenheight - ;bcc DrawOnTheScreen - lda ydraw+1 - bne DrawOutOfTheScreen - lda ybyte+1 - beq DrawOnTheScreen + cpw ydraw #screenheight + bcs DrawOutOfTheScreen + cpw ybyte #screenheight + bcc DrawOnTheScreen DrawOutOfTheScreen ;jsr DrawJumpPad rts @@ -225,7 +221,7 @@ PutPixelinDraw EndOfDraw mwa xtempDRAW xdraw - mva ytempDRAW ydraw + mwa ytempDRAW ydraw rts .endp @@ -298,7 +294,7 @@ circle .proc ;fxxxing good circle drawing :) ; splot8 mwa xdraw xcircle - mva ydraw ycircle + mwa ydraw ycircle mwa #0 xc mva radius yc @@ -354,7 +350,7 @@ endcircleloop jsr splot8 mwa xcircle xdraw - mva ycircle ydraw + mwa ycircle ydraw rts .endp ;---- @@ -379,14 +375,14 @@ splot8 .proc ;clc lda ycircle adc YC - sta ydraw + sta ydraw ; lower byte only !!! sta tempcir jsr plot sec lda ycircle sbc YC - sta ydraw + sta ydraw ; lower byte only !!! jsr plot sec @@ -399,7 +395,7 @@ splot8 .proc jsr plot lda tempcir - sta ydraw + sta ydraw ; lower byte only !!! jsr plot ;--- clc @@ -412,14 +408,14 @@ splot8 .proc ;clc lda ycircle adc xC - sta ydraw + sta ydraw ; lower byte only !!! sta tempcir jsr plot sec lda ycircle sbc xC - sta ydraw + sta ydraw ; lower byte only !!! jsr plot sec @@ -432,7 +428,7 @@ splot8 .proc jsr plot lda tempcir - sta ydraw + sta ydraw ; lower byte only !!! jsr plot RTS @@ -549,7 +545,7 @@ CheckNextTank lda xtankstableH,x cmp xdraw+1 bne UnequalTanks - lda ydraw + lda ydraw ; lower byte only !!! ;sec ;sbc #$01 ; minus 1, because it was 1 pixel too high sta ytankstable,x ; what's the heck is that????!!!! @@ -618,6 +614,7 @@ DrawTankNrX sta xdraw+1 lda ytankstable,x sta ydraw + mva #0 ydraw+1 jsr TypeChar @@ -644,7 +641,7 @@ NoMissile sta xbyte+1 ; calculate start position of the tank - lda ydraw + lda ydraw ; lower byte only !!!! clc adc #PMOffset sta temp @@ -675,7 +672,11 @@ DoNotDrawTankNr drawmountains .proc ;-------------------------------------------------- - mwa #0 xdraw + lda #0 + sta xdraw + sta xdraw+1 + sta ydraw ; not necessary but.... + sta ydraw+1 mwa #mountaintable modify mva #1 color @@ -696,7 +697,11 @@ NoMountain ;-------------------------------------------------- drawmountainspixel ;-------------------------------------------------- - mwa #0 xdraw + lda #0 + sta xdraw + sta xdraw+1 + sta ydraw ; not necessary but.... + sta ydraw+1 mwa #mountaintable modify @@ -750,23 +755,23 @@ SoilDown2 .proc adw RangeLeft #mountaintable2 tempor2 NextColumn1 - mva #0 ydraw + mwa #0 ydraw NextPoint1 jsr point beq StillNothing ldy #0 - lda ydraw + lda ydraw ; lower byte only !!! sta (tempor2),y sta (temp),y jmp FoundPeek1 StillNothing - inc ydraw + inc ydraw ; lower byte only !!! lda ydraw cmp #screenheight bne NextPoint1 ; no pixels on whole column !!! ldy #0 - lda ydraw + lda ydraw ; lower byte only !!! sta (tempor2),y sta (temp),y jmp FoundPeek1 @@ -803,7 +808,7 @@ FalloutOfLine adc #1 sta (tempor2),y ; and checking if there is a pixel there - sta ydraw + sta ydraw ; lower byte only !!! jsr point bne ThereIsPixelHere ; if no pixel we plot it @@ -814,7 +819,6 @@ FalloutOfLine ldy #0 lda (temp),y sta ydraw - lda (temp),y clc adc #1 sta (temp),y @@ -854,7 +858,7 @@ getrandomY ;getting random Y coordinate bcs getrandomY clc adc #(margin*2) - sta ydraw + sta ydraw ; lower byte only !!! sta yfloat+1 mva #0 yfloat ;yfloat equals to e.g. 140.0 @@ -1014,7 +1018,7 @@ MakeUnPlot sta oldply,x - ldx ydraw + ldx ydraw ; lower byte only !!! lda linetableL,x sta xbyte sta oldplot @@ -1111,7 +1115,7 @@ MakePlot - ldx ydraw + ldx ydraw ; lower byte only !!! lda linetableL,x sta xbyte lda linetableH,x @@ -1157,7 +1161,7 @@ point .proc ;--- - ldx ydraw + ldx ydraw ; lower byte only !!! lda linetableL,x sta xbyte lda linetableH,x @@ -1251,7 +1255,7 @@ CopyMask ;--- ldy xbyte - lda ydraw ; y = y - 7 because left lower. shouldn't it be 8? + lda ydraw ; y = y - 7 because left lower. shouldn't it be 8? - lower byte only !!! sec sbc #7 tax diff --git a/textproc.asm b/textproc.asm index b075064..6ce5876 100755 --- a/textproc.asm +++ b/textproc.asm @@ -1324,6 +1324,8 @@ DOTNcharloop sta Xdraw+1 lda TextPositionY sta ydraw + lda #0 + sta ydraw+1 jsr PutChar4x4 inc TextCounter @@ -1357,6 +1359,8 @@ TypeLine4x4Loop sta CharCode4x4 mwa LineXdraw Xdraw mva LineYdraw Ydraw + lda #0 + sta ydraw+1 jsr PutChar4x4FULL ;type empty pixels as well! adw LineXdraw #4 inc LineCharNr