2023-09-29 02:07:10 +00:00
|
|
|
:asm >spk ( div -- )
|
|
|
|
MOV AL 0xb6 #
|
|
|
|
OUT 0x43 # AL
|
|
|
|
POP AX
|
|
|
|
OUT 0x42 # AL
|
|
|
|
MOV AL AH
|
|
|
|
OUT 0x42 # AL
|
|
|
|
IN AL 0x61 #
|
|
|
|
OR AL 0x03 #
|
|
|
|
OUT 0x61 # AL
|
|
|
|
NEXT
|
|
|
|
|
2023-10-02 01:54:58 +00:00
|
|
|
:asm freq>div ( f -- d )
|
|
|
|
MOV AX 0x34df #
|
|
|
|
MOV DX 0x12 #
|
|
|
|
POP BX
|
|
|
|
DIV BX
|
|
|
|
PUSH AX
|
|
|
|
NEXT
|
|
|
|
|
2023-09-29 02:07:10 +00:00
|
|
|
:asm silence ( -- )
|
|
|
|
IN AL 0x61 #
|
|
|
|
AND AL 0xfc #
|
|
|
|
OUT 0x61 # AL
|
|
|
|
NEXT
|
|
|
|
|
2024-04-06 02:19:00 +00:00
|
|
|
: slide ( freq count + -- )
|
|
|
|
>r swap freq>div swap begin over >spk 2 sleep-csec swap r@ + swap 1- dup not until
|
2023-09-29 02:07:10 +00:00
|
|
|
rdrop drop drop silence ;
|
2024-04-06 02:19:00 +00:00
|
|
|
: divboop ( count div ) >spk sleep-csec silence ;
|
|
|
|
: boop ( freq count -- ) swap freq>div divboop ;
|
2023-09-29 02:07:10 +00:00
|
|
|
: noise ( count -- )
|
|
|
|
begin rand >spk 1 sleep-csec 1- dup not until drop silence ;
|
2024-04-06 02:19:00 +00:00
|
|
|
: spk-arp ( f1 f2 count -- ) times each dup 1 boop swap next drop drop ;
|
|
|
|
|
|
|
|
deferred arp spk-arp
|
2023-09-29 02:07:10 +00:00
|
|
|
|