out PIT_DATA0 + %1, al
%endmacro
-start: xor eax, eax
+start: xor ax, ax
mov ds, ax
mov es, ax
mov ss, ax
.fillgrad:
mov ax, bx
mov ah, al
- mov cx, 3680 ; 20 lines
+ mov cx, 2400 ; 15 lines
rep stosw
inc bx
cmp bx, 208
jnz .fillgrad
+
+ ; mountains
+ mov cx, 320
+ mov bp, sp
+.mnt: mov [bp - 2], cx
+ fild word [bp - 2]
+ fidiv word [w30]
+ fsincos
+ fiadd word [w5]
+ fimul word [w5]
+ fistp word [bp - 2]
+ ;fistp word [bp - 4]
+ mov bx, [bp - 2]
+ add bx, 100
+ imul bx, bx, 320
+ add bx, cx
+.mntcol:
+ mov byte [es:bx], 0
+ add bx, 320
+ cmp bx, 64000
+ jb .mntcol
+
+ dec cx
+ jnz .mnt
+
ret
cmp ax, cx
jb .eoi
- inc dword [muscur]
+ inc word [muscur]
mov ax, [music + 2 + bx] ; event counter reload
test ax, ax
jz .off
str1: db 'message message blah',0
-str2: db 'Michael & Athina',0
+str2: db 'Michael & Athena',0
-G2 equ 24351/2
-C3 equ 18243/2
-D3 equ 16252/2
-B2 equ 19328/2
-F3 equ 13666/2
-E3 equ 14479/2
+G2 equ 12175
+C3 equ 9121
+D3 equ 8126
+B2 equ 9664
+F3 equ 6833
+E3 equ 7239
%define TM(x) (40 + (x) * 4)
dd 0820280ch
dd 00000800h
dd 0001f800h
+
+w5: dw 5
+w30: dw 30
times 510-($-$$) db 0
dw 0aa55h