REM triangle filling routine for acorn atom. quite effective REM from a letter to Greg, c. 1985 REM ATOM BASIC PROGRAM TO FILL TRIANGLES REM DIM XX(3), YY(3), DD(3), GG(3): S=256 XX1=10: YY1=15 XX2=250: YY2=100 XX3=120: YY3=190 S = #87: E=#80 E!4=#FFFEFCF8 !E=#F0E0C080 S!4=#0103070F !S=#1F3F7FFF L = #91, R= L+1,V=L+2, W=L+3,M=L+4, G=L+5,T=L+6,B=L+7 DIM LL9, PRINT $1 F.N=1 TO 2: DIM P(-1): REM or P=#2800 :LL1 LDA L: LSR A: LSR A: LSR A: TAY: STA G LDA L: AND @07: TAX LDA S,X: STA M LDA R: LSR A: LSR A: LSR A: SEC SBC G BEQ LL4 STA G LDA M: AND W: ORA (B),Y: STA T LDA M: AND V: EOR T: STA (B),Y INY: DEC G BEQ LL3 :LL2 LDA (B),Y: ORA W: EOR V: STA (B),Y INY: DEC G BNE LL2 :LL3 LDA R: AND @07: TAX: LDA E,X STA M: AND W: ORA (B),Y: STA T LDA M: AND V: EOR T: STA(B),Y RTS :LL4 LDA R: AND @7: TAX: LDA E,X: AND M STA M: AND W: ORA (B),Y: STA T LDA M: AND V: EOR T: STA(B),Y: RTS ] N. PRINT $6: PRINT $7: CLEAR 4 ?w = SETMASK ?V = invertmask !B = 38880-32*YY1 DD3 = YY3-YY1: GG3=S*(XX3-XX1)/DD3 F = S*XX1: H=F bottomTriangle DD1 = YY2-YY1: GG1=S*(XX2-XX1)/DD1 ?l=F/S: ?R=H/S: WAIT: LINK LL1: F=F+GG3: H=H+GG1 !B= !B-32: DD1=DD1-1: IF DD1<>0 GOTO bottomTriangle topTriangle DD2 = YY3-YY1: GG2=S*(XX3-XX1)/DD1 ?l=F/S: ?R=H/S: WAIT: LINK LL1: F=F+GG3: H=H+GG1 !B= !B-32: DD2=DD2-1: IF DD2<>0 GOTO topTriangle RETURN