008
14.07.2021, 14:00 Uhr
volkerp
Default Group and Edit
|
Zitat: | wolle1945 schrieb Mich würden die Machinenprogramme für die Basic-Befehle "BEEP" und "Sound" interessieren. Wo kann ich da fündig werden? |
Im Quellcode vom HC-Caos
Quellcode: | 482 E28C 01 0A0F BEEP: LD BC,0A0FH ; B=Dauer, C=Lautstaerke 483 E28F 21 0030 LD HL,48 ; HL=Tonhoehe 1 484 E292 D5 PUSH DE 485 E293 5C LD E,H ; E=0 (keine Tonhoehe 2) 486 E294 CD F915 CALL TON2 487 E297 3E 1E LD A,30 488 E299 CD E2A3 CALL WAIT ; 30*6ms=180ms 489 E29C 3E 03 LD A,3 490 E29E D3 8C OUT (CTC0),A 491 E2A0 3E 10 LD A,16 ; 16*6ms=96ms 492 E2A2 D1 POP DE ... 1595 1596 ; **35** 1597 ; Tonausgabe 1598 ; 1599 ; (ARG1) => HL L = Tonhoehe 1 (ZK fuer CTC 0, 0=kein Ton) 1600 ; H = Vorteiler 1 (0, 1) 1601 ; (ARG2) => DE E = Tonhoehe 2 (ZK fuer CTC 1, 0=kein Ton) 1602 ; D = Vorteiler 2 (0, 1) 1603 ; (ARG3) => BC C = Lautstaerke (0 ... 1FH) 1604 ; B = Tondauer (0 ... FFH) (in 20 ms-Schritten) 1605 ; bzw. 0 = Dauerton) 1606 1607 F90C CD F5FF TON: CALL LARG ; Argumente laden 1608 F90F DD CB 08 4E TON1: BIT 1,(IX+8) ; noch alter Ton? 1609 F913 20 FA JR NZ,TON1 ; warten 1610 F915 79 TON2: LD A,C ; Lautstaerke 1611 F916 E6 1E AND 00011110b ; maskieren 1612 F918 EE 9F XOR 10011111b ; Komplement da nullaktiv 1613 F91A 4F LD C,A 1614 F91B 78 LD A,B 1615 F91C A7 AND A ; Dauerton? 1616 F91D F3 DI 1617 F91E 28 0D JR Z,TON3 ; ja, keine CTC starten 1618 F920 CB B9 RES 7,C ; nein, Blinken aus 1619 F922 DD CB 08 CE SET 1,(IX+8) ; neuer Ton 1620 F926 3E C7 LD A,11000111b ; EI, Zaehler 50Hz 1621 F928 D3 8E OUT (CTC2),A ; CTC2 1622 F92A 78 LD A,B ; Dauer 1623 F92B D3 8E OUT (CTC2),A 1624 F92D DB 89 TON3: IN A,(PIOBD) 1625 F92F E6 60 AND 01100000b ; RAM8 maskieren 1626 F931 B1 OR C 1627 F932 D3 89 OUT (PIOBD),A ; Lautstaerke ausgeben 1628 F934 FB EI 1629 F935 0E 8C LD C,CTC0 1630 F937 CD F93C CALL TON4 ; Tonkanal 1 starten 1631 F93A 0C INC C ; CTC1 1632 F93B EB EX DE,HL ; Tonkanal 2 starten 1633 F93C 7D TON4: LD A,L ; Zeitkonstante 1634 F93D A7 AND A ; Ton? 1635 F93E 2E 03 LD L,3 ; CTC Stop 1636 F940 28 0C JR Z,TON6 ; kein Ton 1637 F942 6F LD L,A ; Zeitkonstante wieder in L 1638 F943 3E 38 LD A,00111000b ; Steuerbyte "Zeitgeber" vor 3x RRA 1639 F945 CB 3C SRL H ; Bit 0 (Vorteiler) nach CY 1640 F947 1F RRA 1641 F948 1F RRA ; Vorteiler nach Bit 5 rotieren 1642 F949 1F RRA 1643 F94A F3 DI 1644 F94B ED 79 OUT (C),A 1645 F94D FB EI ; Interrupts wieder ein nach zweitem OUT 1646 F94E ED 69 TON6: OUT (C),L 1647 F950 C9 RET
|
Ist aus caos47_src.zip, gibt es bei kc85info -- VolkerP
http://hc-ddr.hucki.net (Z9001, Z1013, LC-80, ...) |