Home » Personal collection » Commodore disks » disk41a_autostereo.d64 » autocode.97.2
autocode.97.2
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 » disk41a_autostereo.d64 |
| Filename: | autocode.97.2 |
| Read OK: | ✔ |
| File size: | 124E bytes |
| Load address: | 0801 |
| Exec address: | 0000 |
File contents
10 ; AUTOSTEREOGRAM GENERATOR
20 ;
30 ; 17/12/96
40 ;
50 *=$1000
60 I=$CF00
70 J=$CF01
80 S=$CF02
90 SEP=$CF03
100 XPIXEL=$CF04
110 YPIXEL=$CF05
120 XPIB=$CF06
130 YPIB=$CF07
140 RNO=$CF08
145 VECTOR=$CF0A ; 16 BYTE
150 MULTIREG=$CF09
500 JMP LSCR
510 JMP AUTOSTEREO
520 JMP SSCR
600 HINSTR TXT $2D,$00,$00,$00
1000 ; GRAPHIC POINT PLOTTER
1010 PLOTPC LDA #$47
1020 STA $FB
1030 LDA #$3F
1040 STA $FC
1050 LDA YPIXEL
1060 LSR A
1070 LSR A
1080 LSR A
1090 STA YPIB
1100 AND #$03
1110 ASL A
1120 ASL A
1130 ASL A
1140 ASL A
1150 ASL A
1160 ASL A
1170 STA $02
1180 LDA $FB
1190 SEC
1200 SBC $02
1210 STA $FB
1220 LDA $FC
1230 SBC #$00
1240 SBC YPIB
1250 PHA
1260 LDA YPIB
1270 LSR A
1280 LSR A
1290 STA $02
1300 PLA
1310 SEC
1320 SBC $02
1330 STA $FC
1340 LDA YPIXEL
1350 AND #$07
1360 STA YPIB
1370 LDA $FB
1380 SEC
1390 SBC YPIB
1400 PHA
1410 LDA XPIXEL
1420 AND #$F8
1430 STA YPIB
1440 PLA
1450 CLC
1460 ADC YPIB
1470 STA $FB
1480 LDA $FC
1490 SBC #$00
1500 STA $FC
1510 LDA XPIXEL
1520 AND #$07
1530 TAX
1540 LDA #$80
1550 GBITLP CPX #$00
1560 BEQ PPCONT
1570 LSR A
1580 DEX
1590 JMP GBITLP
1600 PPCONT STA $FD
1610 RTS
1620 PLOTON JSR PLOTPC
1630 LDY #$00
1640 LDA ($FB),Y
1650 ORA $FD
1660 STA ($FB),Y
1670 RTS
1680 PLOTOFF JSR PLOTPC
1690 LDA $FD
1700 EOR #$FF
1710 STA $FD
1720 LDY #$00
1730 LDA ($FB),Y
1740 AND $FD
1750 STA ($FB),Y
1760 RTS
1770 BWREAD JSR PLOTPC
1780 LDY #$00
1790 LDA ($FB),Y
1800 AND $FD
1810 BNE READPOS
1815 LDA HINSTR
1820 RTS
1830 READPOS LDA HINSTR+1
1840 RTS
1850 READPIX LDA MULTIREG
1860 BNE MULTIREAD
1870 JMP BWREAD
1880 MULTIREAD LDA XPIXEL
1890 PHA
1900 AND #$FE
1910 STA XPIXEL
1912 JSR PLOTPC
1914 LDY #$00
1916 LDA ($FB),Y
1918 AND $FD
1920 BEQ MRII
1922 LDA #$02
1924 MRII PHA
1925 INC XPIXEL
1926 JSR PLOTPC
1928 LDY #$00
1930 LDA ($FB),Y
1932 AND $FD
1934 BEQ MRIII
1935 PLA
1936 CLC
1938 ADC #$01
1939 PHA
1940 MRIII PLA
1941 TAX
1942 PLA
1944 STA XPIXEL
1946 LDA HINSTR,X
1948 RTS
2000 ; BITMAP ON ROUTINE
2010 GRAPHIC LDA $D018
2020 AND #$01
2030 ORA #$18
2040 STA $D018
2050 LDA $DD02
2060 ORA #$03
2070 STA $DD02
2080 LDA $DD00
2090 AND #$FC
2100 ORA #$03
2110 STA $DD00
2120 LDA $D011
2130 ORA #$20
2140 STA $D011
2150 LDA #$04
2160 STA $FC
2170 LDY #$00
2180 STY $FB
2190 LDA #$01
2200 GRLOP STA ($FB),Y
2210 INY
2220 BNE GRLOP
2230 INC $FC
2240 LDX $FC
2250 CPX #$08
2260 BNE GRLOP
2270 LDA MULTIREG
2280 BEQ NOCOLS
2290 JMP IRQON
2300 NOCOLS LDA $D016
2310 AND #$EF
2320 STA $D016
2330 RTS
3000 ; AUTOSTEREOGRAM CALCULATOR
3010 JOYSTEREO JSR GRAPHIC
3020 LDA #$C7
3030 STA YPIXEL
3040 JOYLINE LDY #$00
3050 STY $FB
3060 LDA #$C0
3070 STA $FC
3080 LINELOP TYA
3090 STA ($FB),Y
3100 INY
3110 BNE LINELOP
3120 LDA #$00
3130 STA XPIXEL
3140 XLOP JSR READPIX
3150 STA SEP
3160 AND YPIXEL
3170 AND #$01
3180 CLC
3190 ADC SEP
3200 LSR A
3210 STA I
3220 LDA XPIXEL
3230 SEC
3240 SBC I
3250 BCC XRELOP
3260 STA I
3270 CLC
3280 ADC SEP
3290 BCS XRELOP
3300 STA J
3310 REPEAT LDX I
3320 LDA $C000,X
3330 STA S
3340 CMP J
3345 BEQ XRELOP
3350 BCS LLCASE3
3360 STA I
3370 JMP L210
3380 LLCASE3 LDA J
3390 STA $C000,X
3400 STA I
3410 LDA S
3420 STA J
3430 L210 LDX I
3440 LDA $C000,X
3450 CMP I
3460 BNE REPEAT
3510 LDA J
3520 LDX I
3530 STA $C000,X
3540 XRELOP LDX XPIXEL
3550 INX
3560 BEQ YRELOP
3570 STX XPIXEL
3580 JMP XLOP
3590 YRELOP JSR DISP
3600 DEC YPIXEL
3610 LDA YPIXEL
3620 BEQ JOYEND
3630 JMP JOYLINE
3645 JOYEND JMP IRQOFF
3650 DISP LDA #$00
3660 STA XPIXEL
3670 DLOP TAX
3680 LDA $C000,X
3690 CMP XPIXEL
3700 BNE DELSE
3710 LDA RNO
3720 LSR A
3730 INC $A2
3740 ADC $A2
3750 LDX $A2
3760 ADC $0000,X
3770 STA RNO
3780 AND #$01
3790 LDX XPIXEL
3800 STA $C100,X
3810 JMP NELSE
3820 DELSE LDA $C000,X
3830 TAY
3840 LDA $C100,Y
3850 STA $C100,X
3860 NELSE CMP #$00
3870 BEQ NOBL
3880 JSR PLOTON
3885 JMP REDISP
3890 NOBL JSR PLOTOFF
3900 REDISP DEC XPIXEL
3910 LDA XPIXEL
3920 BNE DLOP
3925 RTS
3930 IRQOFF SEI
3940 LDA #<IRQHOLD
3950 STA $0314
3960 LDA #>IRQHOLD
3970 STA $0315
3980 CLI
3990 RTS
4000 IRQHOLD LDA #$01
4010 STA $D019
4020 JMP (VECTOR)
5000 ; INTERRUPT ROUTINES
5010 IRQ LDA #$01
5012 STA $D019
5014 LDA $D012
5020 BEQ IRQTOP
5030 LDY #$02
5040 ILOP DEY
5050 BNE ILOP
5060 LDA $D016
5070 ORA #$10
5080 STA $D016
5090 LDA #$00
5100 STA $D012
5110 JMP $EA81
5120 IRQTOP LDA $D016
5130 AND #$EF
5140 STA $D016
5143 LDA #$C7
5146 SEC
5150 SBC YPIXEL
5160 CLC
5170 ADC #$32
5180 STA $D012
5190 JMP (VECTOR)
5320 IRQON SEI
5327 LDA $0314
5328 STA VECTOR
5329 LDA $0315
5330 STA VECTOR+1
5335 LDA #$01
5340 STA $D019
5350 STA $D01A
5360 STA $DC0D
5370 LDA #$3B
5380 STA $D011
5390 LDA #$00
5400 STA $D012
5410 LDA #<IRQ
5420 STA $0314
5430 LDA #>IRQ
5440 STA $0315
5450 CLI
5460 RTS
5465 ; I/O ROUTINES
5470 LSCR LDA #$01
5480 LDX $FFF
5490 LDY #$00
5500 JSR $FFBA
5510 LDA $C000
5520 LDX #$08
5530 LDY #$C0
5540 JSR $FFBD
5560 LDA #$00
5563 LDX #$00
5566 LDY #$20
5570 JMP $FFD5
5600 SSCR LDA #$01
5610 LDX $FFF
5620 TAY
5630 JSR $FFBA
5640 LDA $1808
5650 LDX #$10
5660 LDY #$18
5670 JSR $FFBD
5680 LDA #$20
5690 STA $FC
5700 LDA #$FB
5710 LDX #$00
5720 LDY #$40
5730 STX $FB
5740 JMP $FFD8
; AUTOSTEREOGRAM GENERATOR & ; 5 ; 17/12/96 ;( ; G2 ��$1000 S<