021
08.07.2026, 20:35 Uhr
FL
|
Ich wußte garnicht, daß man beim CAOS 3.4i, beim Vorteiler von CTC-Kanal 2, auch eine 2 angeben kann. Der Kanal wird dann in den Zählermode geschalten und man bekommt einen Ton der in der Höhe zwischen VT=0 und 1 liegt.
Mario, was hältst du hiervon:
| Quellcode: | TON: CALL LARG ; Argumente laden TON1: BIT 1,(IX+8) ; noch alter Ton? JR NZ,TON1 ; warten TON2: LD A,C ; Lautstaerke AND 00011111b ; maskieren (Bit 0-4) CPL ; Komplement da nullaktiv LD C,A LD A,B AND A ; Dauerton? JR Z,TON3 RES 7,C ; nein, Blinken aus SET 1,(IX+8) ; neuer Ton LD A,11000111b ; EI, Zaehler 50Hz DI OUT (CTC2),A ; CTC2 LD A,B ; Dauer OUT (CTC2),A EI TON3: IN A,(PIOBD) OR 10011111b ; RAM8 maskieren AND C ; Lautstaerke einbauen OUT (PIOBD),A ; Lautstaerke ausgeben
LD BC,0300h+CTC0 ; B=Steuerbyte "Kanal Reset" CALL TON4 ; Tonkanal 1 starten INC C ; CTC1 EX DE,HL ; Tonkanal 2 starten
TON4: OUT (C),B ; CTC-Kanal anhalten LD A,L AND A RET Z ; kein Ton (ZK=0) LD A,H ; Bit0=Vorteiler und Bit1=Zeitgeber/Zähler RRCA ; nach Bit5 und 6 rotieren RRCA OR 0AH ; 2*5 (Zeitkonstante folgt und CY=0) RRA ; CTC-DI DI OUT (C),A ; CTC starten OUT (C),L ; ZK EI RET |
Hier waren noch 3 Byte möglich:
| Quellcode: | STOP1: XOR A LD (IX),A STOP11: LD C,(IX) CP C JR Z,STOP11 STOP2: LD (IX),A STOP21: OR A,(IX) JR Z,STOP21 ADD C RET |
Gruß Frank. Dieser Beitrag wurde am 08.07.2026 um 20:42 Uhr von FL editiert. |