tmoffs dd 0
musptr dd 0
frame dd 0
-pnote dd 0
fval dd 0
cmap dd 0
tmoffs equ 7e04h
musptr equ 7e08h
frame equ 7e0ch
-pnote equ 7e18h
fval equ 7e10h
cmap equ 7e14h
%endif
mov ss, ax
mov sp, 7c00h
- mov di, nticks
- mov cx, 16
- rep stosw
-
cli
mov word [32], tintr
mov [34], ax
mov [es:34], ax
%endif
+ mov di, nticks
+ mov cx, 16
+ rep stosw
+
stimer 0, 5966
%ifdef MIDI
call resetmidi
%ifdef MIDI
note_on:
- mov [pnote], ax
+ push ax
mov ax, 90h ; note-on command for channel 0
call sendmidi
- mov ax, [pnote]
+ pop ax
call sendmidi
mov ax, 127
jmp sendmidi
-note_off:
- mov ax, [pnote]
- test ax, ax
- jz textout_done
- mov ax, 80h ; note-off command for channel 0
- call sendmidi
- mov ax, [pnote]
- call sendmidi
- mov ax, 64
- jmp sendmidi
-
all_notes_off:
mov ax, 0b0h ; channel mode message for channel 0...
call sendmidi
mov ax, 7bh ; all notes off
call sendmidi
xor ax, ax
- mov [pnote], ax
jmp sendmidi
waitmidi:
%ifdef MIDI
push ax
- ;call note_off
call all_notes_off
pop ax
call note_on