risorse | zx spectrum | speclight
Il programma crea degli effetti psichedelici sullo schermo a tempo di musica. Collegando il registratore alla presa EAR dello Spectrum, e regolando opportunamente il volume mentre viene riprodotto un nastro musicale, sullo schermo verranno generate sequenze di immagini colorate sincronizzate con il brano in ascolto.
L'idea alla base è banale: il programma, durante una scansione del quarto di schermo in alto a sinistra, campiona regolarmente 4 bit dalla presa EAR, i quali determinano il colore e la luminosità della posizione del carattere corrente; al termine della scansione, l'area viene riprodotta specularmente sul quarto di schermo in alto a destra. La porzione di schermo superiore viene quindi specularmente riprodotta su quella inferiore.

Scarica il nastro virtuale speclight.tzx (2KB).
10 BORDER 0: PAPER 0: INK 7 20 CLEAR 39999 30 LOAD ""CODE 40000 40 CLS : RANDOMIZE USR 40000
| Graph | ld b,$07 | 06 07 |
| ld hl,($5c7b) | 2A 7B 5C | |
| ld a,$80 | 3E 80 | |
| Udg | ld (hl),a | 77 |
| inc hl | 23 | |
| djnz Udg | 10 FC | |
| ld a,$ff | 3E FF | |
| ld (hl),a | 77 | |
| ld a,$02 | 3E 02 | |
| call $1601 | CD 01 16 | |
| ld bc,$02c0 | 01 C0 02 | |
| ld a,$90 | 3E 90 | |
| rst $10 | D7 | |
| dec bc | 0B | |
| ld a,b | 78 | |
| or c | B1 | |
| jr nz,Print | 20 F8 | |
| Break | ld a,($5c08) | 3A 08 5C |
| cp $5a | FE 5A | |
| ret z | C8 | |
| ld hl,$580f | 21 0F 58 | |
| ld b,$0b | 06 0B | |
| Line | push bc | C5 |
| ld d,h | 54 | |
| ld e,l | 5D | |
| inc de | 13 | |
| ld b,$10 | 06 10 | |
| Attr | xor a | AF |
| ld c,a | 4F | |
| push bc | C5 | |
| ld b,$04 | 06 04 | |
| Bit | in a,($fe) | DB FE |
| bit 6,a | CB 77 | |
| jr z,Noset | 28 02 | |
| set 2,c | CB D1 | |
| Noset | rlc c | CB 01 |
| djnz Bit | 10 F4 | |
| ld a,c | 79 | |
| cp $78 | FE 78 | |
| jr nz,Mem | 20 04 | |
| ld a,r | ED 5F | |
| and $78 | E6 78 | |
| Mem | ld (hl),a | 77 |
| ld (de),a | 12 | |
| dec hl | 2B | |
| inc de | 13 | |
| pop bc | C1 | |
| djnz Attr | 10 DF | |
| ld a,$30 | 3E 30 | |
| Nextline | inc hl | 23 |
| dec a | 3D | |
| jr nz,Nextline | 20 FC | |
| pop bc | C1 | |
| djnz Line | 10 D0 | |
| ld bc,$0160 | 01 60 01 | |
| ld hl,$5800 | 21 00 58 | |
| ld de,$5abf | 11 BF 5A | |
| Lowvideo | ld a,(hl) | 7E |
| ld (de),a | 12 | |
| dec de | 1B | |
| inc hl | 23 | |
| dec bc | 0B | |
| ld a,b | 78 | |
| or c | B1 | |
| jr nz,Lowvideo | 20 F7 | |
| jr Break | 18 B1 |
Pagina modificata l'8/11/2011