From NISC.SRI.COM!unix!Teknowledge.COM!uw-beaver!milton!dali!uakari.primate.wisc.edu!zaphod.mps.ohio-state.edu!uwm.edu!ogicse!orstcs!jacobs.CS.ORST.EDU!parkern Thu May  3 00:27:24 PDT 1990
Article 795 of comp.binaries.apple2:
Path: NISC.SRI.COM!unix!Teknowledge.COM!uw-beaver!milton!dali!uakari.primate.wisc.edu!zaphod.mps.ohio-state.edu!uwm.edu!ogicse!orstcs!jacobs.CS.ORST.EDU!parkern
>From: parkern@jacobs.CS.ORST.EDU (Neil Parker)
Newsgroups: comp.binaries.apple2
Subject: New Interruptable Beep for GS
Summary: Works with Kermit; doesn't lock out interrupts!
Keywords: beep, kermit
Message-ID: <18011@orstcs.CS.ORST.EDU>
Date: 1 May 90 00:36:48 GMT
Sender: usenet@orstcs.CS.ORST.EDU
Reply-To: parkern@jacobs.CS.ORST.EDU (Neil Parker)
Organization: The Universal Society for the Prevention of Reality
Lines: 88
Expires:
Sender:
Followup-To:

There have recently been several calls on the net for a program which
replaces the standard Apple beep routine with something that doesn't lock
out interrupts, so that Kermit wouldn't drop characters when it gets a
control-G.  Here are a couple of programs that I wrote which have worked
well for me.

These programs require an Apple IIGS to function.  They run under ProDOS 8.
They are compatible with ECP8.  They should run under DOS 3.3 (see the
Applesoft program at the end of this posting), but I haven't actually
tested that yet.

BRUN CHIRP--This program installs an alternate beep which doesn't lock out
interrupts.  Only one CHIRP can be installed at a time; if this program is
BRUN while CHIRP is installed, it exits with an error message.

BRUN UNCHIRP--This program removes a previously-installed CHIRP.  If CHIRP
has not been installed, an error message is printed.

When CHIRP is installed, the standard BEEP sound is replaced by a quick,
rapidly-rising tone.  This tone is generated by the standard LDA $C030
method; the DOC is not used.

There is one thing to watch out for with these programs (Apple DTS, the
Guardians of Pure Programming Practice, will probably send their hit squad
after me for this):  In order to avoid some bizarre crashes caused by its
handle disappearing out from under it, CHIRP disguises itself as part of the
RAMdisk.  This means that control-apple-RESET will disconnect CHIRP, but
leave its memory still allocated.  If CHIRP is installed and then
disconnected with RESET multiple times, memory will gradually begin to fill
up with unused handles which never get deallocated because the system thinks
they're part of the RAMdisk.  These handles can be deallocated manually
using the Memory Mangler or the Monitor's U command, or they will go away
when the computer is turned off.

Finally...These programs are in the public domain.  I make no guarantee of
any kind about them.

--
Neil Parker                nparker@jacobs.cs.orst.edu
parker@corona.uoregon.edu  nparker@nyssa.cs.orst.edu
nparker@cie.uoregon.edu
parker@astro.uoregon.edu   DISCLAIMER:  For external use only.
-----(Files follow)-----
FiLeStArTfIlEsTaRt
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789()
ICHIRP.SHK      AQATAAAACA(4EIAg06JAe6wFOcBtAQATAoni
GVvTlzW6CYrOAAAAOcBAD0hWAAAAa5wFAMQHAEAAAAA4AKAAMBAAAAABAAAAAAAA
GVvTkSI2BAAQAMAABAAAA8CAAAw4AYAAAAAAAAAYAAQAa5wBAMQHHAAAdolDAAwA
OcBAD0hWAAAAAAAAAAAAAMAAAAAAAAAAAAQBAACAAAAAAAAAAAQAAAAAIDAAAAAA
AAgAAAAAYBAAAAQAAEAWINEAQJVSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAgAAADHWISnMy2DK0y6as5LOol7Mogye6yHO0yX(64AQj()BIgkCkUHWI
znO6yDPoyf(7g2e4xXu8yne9gOf5g6e4wDfwgWO7HncyA0407jBYIBjwbQPSDIKA
AISEoFOAIkOOGUIAIUIaNbwpQH2PCAqMGcLAhFUz4gC0hAy(sHcYyXO90Hu7iDa5
sze5sHOohXu8gmP5z7e6sHO9kXO7gBQjYYQpAgQahNUjNiQpIFWRAQPSZQPABQPA
YQPAAQPwAQPACIKAAISC6HOAfApehAy(vPcYkze90fq7sHOoj)O7lTf4hjOosTu7
A0Y5GYIYniAhgqqB3CgAIUoBibghYAKI)kLAGcZY4DBi0DiwUDwGGUKCIkGGiiEA
iAxAhDAAgtPOGUIaHUIamDAoCAtBxeg5FAvB93OIlGPgli0BghkBFVmQAAAcaDAA
b(vo9DNiADzrQrM4Yof9170agjtRAAEYCAQAAAAAvAQAAMOAGAAAAAAAAAGAAEAA
OABAD0hWAAAAa5wEAMQHXAAAdolDAAwAAAAAAAAADAAAAAAAAAAAAcAAgAAAAAAA
AAgAAAAAsDAAAAAAAAA7OVFAJh0QAAlUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
g5MID7c1SnMy2DK0y6as5LOol7Mogye6yHO0yX(64AQj()BIgkCkUDmzznO6yDPo
yf(7g2e4xXu8yne9gOf5g6e4wDfwgWO7HncyA0407jBYIBjwbQPSDIKAAISEoFOA
IkOOGUIAIUIaNbwpQDmyCAqCGcLAgxcz4QC8ODy(sHMYyXO90Hu7iDa5sze5v7Oo
pDK90Pv7sze4NSe50DGAgCwG3CgBIikBGcLiDIKSAICEIFOAIQNSiaA1iohAhDAA
QIgoAAgI7jT4lJEYoBXRoZQhgeQhGYOAmLA0GE7BgUA8A2f7HUa8GUKSAAGSAAAA
A0Yu

The following is a program intended to make CHIRP and UNCHIRP compatible
with DOS 3.3.  WARNING:  I have not actually tested this program!

10  REM Program to run CHIRP and UNCHIRP under DOS 3.3
20 D$ =  CHR$ (4)
30 F$ = "CHIRP"
40  PRINT "Selections:"
50  PRINT "(I) Install CHIRP"
60  PRINT "(R) Remove CHIRP"
70  PRINT "(Q) Quit"
80  PRINT : PRINT "Which? ";
90  GET A$: IF  ASC (A$) > 95 THEN A$ =  CHR$ ( ASC (A$) - 32)
100  IF A$ = "R" THEN F$ = "UN" + F$: GOTO 140
110  IF A$ = "Q" THEN  END
120  IF A$ <  > "I" THEN 90
130  PRINT : PRINT D$;"BLOAD";F$
140  CALL 24576


