Home » Personal collection » Commodore disks » disk65a_programs_1.d64 » moire
moire
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
| Tape/disk: | Home » Personal collection » Commodore disks » disk65a_programs_1.d64 |
| Filename: | moire |
| Read OK: | ✔ |
| File size: | 0634 bytes |
| Load address: | 0801 |
| Exec address: | 0000 |
Duplicates
There is 1 duplicate copy of this file in the archive:
- Personal collection » Commodore disks » disk50a2_progs1.d64 » moire
- Personal collection » Commodore disks » disk65a_programs_1.d64 » moire
File contents
40 S=16:B=3:C=8:SM=1024
45 POKE53272,(PEEK(53272) AND 15) OR S
50 POKE56578,PEEK(56578) OR 3
55 POKE56576,(PEEK(56576) AND 252) ORB
60 X=C*1024:H=INT(X/256):L=X-256*H
65 POKE51,L:POKE52,H
70 POKE55,L:POKE56,H
75 POKE53272,(PEEK(53272) AND 241) ORC
80 POKE53265,PEEK(53265) OR 32
85 FOR J=SM TO SM+999
90 POKEJ,1
95 NEXT
100 FOR J=X TO X+7999
105 POKE J,0
110 NEXT
111 GOTO 3000
180 POKE53265,PEEK(53265)AND223
185 POKE53272,(PEEK(53272)AND240)OR4
190 STOP
1000 BYTE=X+7687-320*INT(RB/8)-(RBAND7)+INT(CB/8)*8
1005 BIT=7-(CBAND7)
1010 POKE BYTE,PEEK(BYTE) OR 2^BIT
1015 RETURN
2000 BYTE=X+7687-320*INT(RB/8)-(RBAND7)+INT(CB/8)*8
2005 BIT=7-(CBAND7)
2010 POKE BYTE,PEEK(BYTE) AND 255-2^BIT
2015 RETURN
3000 PL=1:S=1:AX=20:BX=305:Y=15:GOSUB4000:PL=0:S=-1
3005 GOTO 3005
3010 DIMTR(1,145,2):TR(0,0,0)=20:TR(0,0,1)=305:TR(0,0,2)=15:TR=0:A=0
3020 FORT=1TOTR:AX=TR(A,T,0):BX=TR(A,T,1):Y=TR(A,T,2)
3030 AX=AX+((BX-AX)/4):BX=BX-((BX-AX)/4):Y=Y+((BX-AX)/4)
3040 TR(ABS(SGN(A-1)),T*3,0)=AX
3050 TR(ABS(SGN(A-1)),T*3,1)=BX-(BX-AX)/2
3060 TR(ABS(SGN(A-1)),T*3,2)=Y
3070 TR(ABS(SGN(A-1)),T*3+1,0)=AX+(BX-AX)/2
3080 TR(ABS(SGN(A-1)),T*3+1,1)=BX
3090 TR(ABS(SGN(A-1)),T*3+1,2)=Y
3100 TR(ABS(SGN(A-1)),T*3+2,0)=AX+(BX-AX)/4
3110 TR(ABS(SGN(TR-1)),T*3+2,1)=BX-(BX-AX)/4
3120 TR(ABS(SGN(A-1)),T*3+2,2)=Y+(BX-AX)/4
3130 AX=AX+(BX-AX)/4:BX=BX-(BX-AX)/4
3140 Y=Y+(BX-AX)/4:GOSUB4000
3150 NEXT:A=ABS(SGN(TR-1)):TR=(TR+1)*3-1
3160 IFTR>150THEN3160
3170 GOTO3020
4000 IFS=1THENX1=AX+(BX-AX)/2:Y1=Y+(BX-AX)/2
4010 IFS=-1THENX1=AX+(BX-AX)/2:Y1=Y-(BX-AX)/2
4020 Y2=Y:FORX2=AXTOBX:GOSUB5000
4030 NEXT:RETURN
5000 IFX1<>X2THENM=(Y2-Y1)/(X2-X1):C=Y1-M*X1
5010 IFABS(X2-X1)>ABS(Y2-Y1)THEN5210
5020 IFX1=X2THENRETURN
5030 FORCB=X1TOX2STEP2*SGN(X2-X1)
5040 RB=M*CB+C
5050 IFPL=1THENGOSUB1000
5055 IFPL=0THENGOSUB2000
5060 NEXT:RETURN
5210 FORRB=Y1TOY2STEPSGN(Y2-Y1)
5220 CB=X1:IFX1<>X2THENCB=(RB/C)/M
5230 IFPL=1THENGOSUB1000
5240 IFPL=0THENGOSUB2000
5250 NEXT:RETURN
( S�16:B�3:C�8:SM�1024 9- �53272,(�(53272) � 15) � S Q2 �56578,�(56578) � 3 p7 �56576,(�(56576) � 252) �B �<