Boot Strap Loader Entry Address
(BOOT _STRAP)
;
************************************
BOOT
STRAP
LOADER
ENTRY
ADDRESS
;
*************************************
;ORG
OE6F2H
06F2
ORG
006F2H
=
06F2
BOOLSTRAP
EQU
06
F2
E9
0000 E
JMP
SYS_BOOT
Keyboard Noise (KB_NOISE)
06F5
06F5
06FA
06FC
0701
0702
0703
0704
0706
0707
0707
0709
070B
070C
070E
0710
0712
0713
0714
0716
0717
0718
071A
071B
0710
0722
0723
0724
0725
--
- - - - - - - - - - - - - - - - - - - --- - - - -
--
- -
--
- - - - - - - - - - - - - - - --- - - --- - - - -- - - --
;KB_NOISE
;
INPUT
THIS
ROUTINE
IS
CALLED
WHEN
GENERAL
BEEPS
ARE
REQUIRED
FROM
THE
SYSTEM.
DS=
BIOS
DATA
SEGMENT
BX=LENGH
OF
THE
TONE
;
CX=CONTAINS
THE
FREQUENCY
;OUTPUT
ALL
REGISTERS
ARE
MAINTAINED.
;HINTS
AS
CX
GETS
LARGER
THE
TONE
PRODUCED
GETS
LOWER
IN
PITCH.
KB_NOISE
PROC
NEAR
F6
06
0016 R
01
TEST
BIOS_STATUS,KB_NOISU\CT ;
ROUTINE
ALREADY
ACTIVE?
75
29
JNZ
KBN_EXIT
; I F
SO
THEN
EXIT
80
OE
0016 R
01
OR
BIOS_STATUS,KB_NOISU\CT ;
SET
ROUTINE
ACTIVE
FLAG
50
PUSH
AX
53
PUSH
BX
51
PUSH
CX
E4
61
IN
AL,NMLCNTL
;
GET
CONTROL
INFO
50
PUSH
AX
;
SAVE
LOOPOI
:
24
FC
AND
AL,
NOT
SPKR_DATA+
TMR2_GATE
;
TURN
OFF
SPEAKER
DATA
E6
61
OUT
NMLCNTL
,AL
OUTPUT
TO
CONTROL
51
PUSH
CX
HALF
CYCLE
TIME
FOR
TONE
E2
FE
LOOP
$
SPEAKER
OFF
OC
02
OR
AL,SPKR_DATA
TURN
ON
SPEAKER
E6
61
OUT
NMLCNTL,AL
OUTPUT
TO
CONTROL
59
POP
CX
51
PUSH
CX
RETRI
EVE
FREQUENCY
E2
FE
LOOP
$
ANOTHER
HALF
CYCLE
59
POP
CX
RETRI
EVE
FREQ.
4B
DEC
BX
TOTAL
TIME
COUNT
75
ED
JNZ
LOOPOI
DO
ANOTHER
CYCLE
58
POP
AX
RECOVER
CONTROL
E6
61
OUT
NMLCNTL,AL ;
RESTORE
TH
E
CONTROL
REGI
STER
80
26
0016
R
FE
AND
BIOS_STATUS,NOT
KB_NOISE...ACT
;
RESET
ACTIVE
FLAG
59
POP
CX
5B
POP
BX
58
POP
AX
KBN_EXIT:
2-204 ROM BIOS